mirror of
https://github.com/mageddo/dns-proxy-server.git
synced 2026-04-25 17:35:54 +03:00
[GH-ISSUE #473] DPS binary doesn't work on non 4k page size linux arm64 kernels #168
Labels
No labels
bug
confirmed
discussion
duplicate
enhancement
feature
feature-request
not-planned
pull-request
secondary-feature
stale
triage
waiting-feedback
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
starred/dns-proxy-server-mageddo#168
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @pschiffe on GitHub (Jun 15, 2024).
Original GitHub issue: https://github.com/mageddo/dns-proxy-server/issues/473
What is Happening
DPS binary, distributed either as docker image or from
dns-proxy-server-linux-aarch64-3.19.3-snapshot.tgzarchive, doesn't work on non 4k page size linux arm kernels.RHEL 8 variants for arm64 has only 64k page size kernel:
RHEL 9 variants for arm64 have 2 kernel versions (4k and 64k page size) and you can choose. DPS works on the 4k version, but not on the 64k version.
I didn't tested it, but this will probably be issue also when running on linux on apple's arm, as that kernel has 16k page size.
When you try to run the binary from release archive of from docker, it won't start, you just get the error:
Fatal error: Failed to create the main Isolate. (code 8)When I try to run the DPS as jar, it works:
I think this is some java issue, but I'm not sure how to fix it. Google shows some reports like this for other java sw.
Specs
defreitas/dns-proxy-server:3.19.3-snapshot-aarch64Rocky Linux 8.10 (Green Obsidian)@mageddo commented on GitHub (Jun 17, 2024):
Hey @pschiffe thanks for your report. I have no idea of how to fix it, I will search how to improve on that, any help is welcome.
It is probably related to the docker file
github.com/mageddo/dns-proxy-server@2dd5290104/Dockerfile.builder.linux-aarch64 (L1)Or the deploy specs
github.com/mageddo/dns-proxy-server@2dd5290104/.github/workflows/actions-deploy.yml (L69)@mageddo commented on GitHub (Jun 17, 2024):
Maybe it's related to this one https://github.com/oracle/graal/issues/7513, Looks like I will have to upgrade qemu version, maybe graal version too.
@mageddo commented on GitHub (Jun 27, 2024):
Hey, @pschiffe , I've upgraded GraalVM and Qemu versions, can you check if dps 3.22.0-snapshot fix your usecase?
@pschiffe commented on GitHub (Jul 1, 2024):
Hi @mageddo, so far no joy, though the error code is little bit different (and
.jarstopped working):When trying binary
dns-proxy-server-linux-aarch64-3.22.0-snapshot.tgz:Trying
.jarfile:@mageddo commented on GitHub (Jul 1, 2024):
alright, I will have to try it out
@mageddo commented on GitHub (Jul 5, 2024):
Hey @pschiffe , Can you check if DPS
3.24.0-snapshotfixes your usecase? The jar also should be working again.Exception in thread "main" java.lang.NoClassDefFoundError: org/graalvm/nativeimage/ImageInfoFatal error: Failed to create the main Isolate. (code 24), I really tried to emulate rockylinux on aarch but as I don't have an aarch machine, I had not success until now./dns-proxy-server: /lib64/libc.so.6: version GLIBC_2.32 not found (required by ./dns-proxy-server)will implicate to downgrade the glibc version at the builder machine or upgrade the glibc at your machine. I got how downgrade required libc version to 2.28 at #507@pschiffe commented on GitHub (Jul 6, 2024):
Hi @mageddo, awesome job! This seems to be fixed in all my use cases. Here's what I've tested (with
3.24.0-snapshot):It's perfect, thank you!
Reg glibc version, it's usually not possible to upgrade the version within the distribution. RHEL 8 & derivates are currently running on
glibc-2.28, and these will be supported until 2029. Anything else supported is probably running on newer versions, so you don't need to support older versions than that. For now, supportingglibc-2.28and newer is perfect.This issue can be closed from my side, thanks again.
@mageddo commented on GitHub (Jul 6, 2024):
Cheers, thanks for your help.