KEMBAR78
A bug report about VM Structs stack walker on Alpine · Issue #1317 · async-profiler/async-profiler · GitHub
Skip to content

A bug report about VM Structs stack walker on Alpine #1317

@yanglong1010

Description

@yanglong1010

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 dwarf and agct walker are correct.
  • On Alpine 3.21, the stacks are not correct if use VM Structs stack walker, the stacks of dwarf and agct walker are not correct too (many unknown frames 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

Image

Image

Image

Image

Image

-JDK 11 (cstack agct) alpine3.10-jdk11-agct.html.zip

Image

Alpine 3.21

Image

Image

Image

Image

Image

Expected vs. actual behavior

  • Expected:correct stack trace
  • Actual: broken stack trace

Reproduction Steps

repro.tar.gz

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)

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions