-
Notifications
You must be signed in to change notification settings - Fork 937
Open
Labels
Description
Describe the bug
Hi,
Using my reproducer code, I found the following problems, and I'm investigating...
- On Alpine 3.10, the stacks are not correct if use VM Structs stack walker, while the stacks of
dwarfandagctwalker are correct. - On Alpine 3.21, the stacks are not correct if use VM Structs stack walker, the stacks of
dwarfandagctwalker are not correct too (manyunknownframes between kernel frames and java frames), but still readable. If use VM Structs stack walker, I have to add--jstackdepth 512, otherwise the html file can not be displayed by Chrome browser, some stacks are too deep (default 2048), beyond the capability of Chrome.
Alpine 3.10
- JDK 8 (cstack vm) alpine3.10-jdk8-vm.html.zip (the picture is bellow)
- JDK 8 (cstack dwarf) alpine3.10-jdk8-dwarf.html.zip
- JDK 8 (cstack agct) alpine3.10-jdk8-agct.html.zip
- JDK 11 (cstack vm)alpine3.10-jdk11-vm.html.zip
- JDK 11 (cstack dwarf) alpine3.10-jdk11-dwarf.html.zip
-JDK 11 (cstack agct) alpine3.10-jdk11-agct.html.zip
Alpine 3.21
-
JDK 8 (cstack vm) alpine3.21-jdk8-vm.html.zip

-
JDK 8 (cstack dwarf) alpine3.21-jdk8-dwarf.html.zip
- JDK 8 (cstack agct) alpine3.21-jdk8-agct.html.zip
- JDK 11 (cstack vm) alpine3.21-jdk11-vm.html.zip
- JDK 11 (cstack dwarf) alpine3.21-jdk11-dwarf.html.zip
- JDK 11 (cstack agct) alpine3.21-jdk11-agct.html.zip
Expected vs. actual behavior
- Expected:correct stack trace
- Actual: broken stack trace
Reproduction Steps
tar -xf repro.tar.gz
cd repro
docker build -t repro -f Dockerfile-alpine-3.10 .
docker build -t repro2 -f Dockerfile-alpine-latest .
docker run --ulimit memlock=-1 -m 5g --cpus=2 --rm --cap-add=SYS_PTRACE --security-opt seccomp=unconfined repro 'sleep 86400'
docker ps
docker exec -it container-id bash
bash test-vm.sh
cat profile-jdk8.html
cat profile-jdk11.html
bash test-dwarf.sh
cat profile-jdk8.html
cat profile-jdk11.html
bash test-agct.sh
cat profile-jdk8.html
cat profile-jdk11.html
docker run --ulimit memlock=-1 -m 5g --cpus=2 --rm --cap-add=SYS_PTRACE --security-opt seccomp=unconfined repro2 'sleep 86400'
docker ps
docker exec -it container-id bash
bash test-vm.sh
cat profile-jdk8.html
cat profile-jdk11.html
bash test-dwarf.sh
cat profile-jdk8.html
cat profile-jdk11.html
bash test-agct.sh
cat profile-jdk8.html
cat profile-jdk11.html
Additional Information/Context
No response
Async-profiler version
latest
Environment details
- Host
cat /etc/centos-release
CentOS Linux release 7.9.2009 (Core)
uname -a
Linux iZbp16q2a88a3le93hdfqwZ 3.10.0-1160.119.1.el7.x86_64 #1 SMP Tue Jun 4 14:43:51 UTC 2024 x86_64 x86_64 x86_64 GNU/Linux
- Container
docker run --rm repro 'cat /etc/alpine-release'
3.10.9
docker run --rm repro '/usr/lib/jvm/java-1.8-openjdk/bin/java -version'
openjdk version "1.8.0_275"
OpenJDK Runtime Environment (IcedTea 3.17.1) (Alpine 8.275.01-r0)
OpenJDK 64-Bit Server VM (build 25.275-b01, mixed mode)
docker run --rm repro '/usr/lib/jvm/java-11-openjdk/bin/java -version'
openjdk version "11.0.4" 2019-07-16
OpenJDK Runtime Environment (build 11.0.4+4-alpine-r1)
OpenJDK 64-Bit Server VM (build 11.0.4+4-alpine-r1, mixed mode)
docker run --rm repro2 'cat /etc/alpine-release'
3.21.3
docker run --rm repro2 '/usr/lib/jvm/java-1.8-openjdk/bin/java -version'
openjdk version "1.8.0_442"
OpenJDK Runtime Environment (IcedTea 3.34.0) (Alpine 8.442.06-r0)
OpenJDK 64-Bit Server VM (build 25.442-b06, mixed mode)
docker run --rm repro2 '/usr/lib/jvm/java-11-openjdk/bin/java -version'
openjdk version "11.0.27" 2025-04-15
OpenJDK Runtime Environment (build 11.0.27+6-alpine-r0)
OpenJDK 64-Bit Server VM (build 11.0.27+6-alpine-r0, mixed mode)










