RFR: 8377395: serviceability/sa/TestJhsdbJstackMixedCore.java fails due to NPE because "because "this.cfa" is null"

Yasumasa Suenaga ysuenaga at openjdk.org
Wed Feb 11 09:34:23 UTC 2026


We've introduced new test TestJhsdbJstackMixedCore.java in [JDK-8374482](https://bugs.openjdk.org/browse/JDK-8374482) to check mixed jstack could unwind signal trampoline on Linux AMD64. However it did not work with following error in some case. We saw it on Oracle Linux 8.10 intermittently.


java.lang.NullPointerException: Cannot invoke "sun.jvm.hotspot.debugger.Address.addOffsetTo(long)" because "this.cfa" is null
at jdk.hotspot.agent/sun.jvm.hotspot.debugger.linux.amd64.LinuxAMD64CFrame.getNextRSP(LinuxAMD64CFrame.java:143)
at jdk.hotspot.agent/sun.jvm.hotspot.debugger.linux.amd64.LinuxAMD64CFrame.sender(LinuxAMD64CFrame.java:189)
at jdk.hotspot.agent/sun.jvm.hotspot.tools.PStack.run(PStack.java:195)
at jdk.hotspot.agent/sun.jvm.hotspot.tools.PStack.run(PStack.java:65)
at jdk.hotspot.agent/sun.jvm.hotspot.tools.PStack.run(PStack.java:60)
at jdk.hotspot.agent/sun.jvm.hotspot.tools.JStack.run(JStack.java:67)
at jdk.hotspot.agent/sun.jvm.hotspot.tools.Tool.startInternal(Tool.java:278)
at jdk.hotspot.agent/sun.jvm.hotspot.tools.Tool.start(Tool.java:241)
at jdk.hotspot.agent/sun.jvm.hotspot.tools.Tool.execute(Tool.java:134)
at jdk.hotspot.agent/sun.jvm.hotspot.tools.JStack.runWithArgs(JStack.java:90)
at jdk.hotspot.agent/sun.jvm.hotspot.SALauncher.runJSTACK(SALauncher.java:306)
at jdk.hotspot.agent/sun.jvm.hotspot.SALauncher.main(SALauncher.java:507)


It was caused by incorrect calculation for virtual address alignment. It exists before JDK-8374482. We aligned `base address + virtual address` in ELF, but it should be aligned virtual address only.

This fix works fine with the coredump which we saw the error in above, and also it passed CI on Oracle Linux 8.10.

Thanks a lot @plummercj for your help!

-------------

Commit messages:
 - fix
 - Fix virtual address calculation

Changes: https://git.openjdk.org/jdk/pull/29662/files
  Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=29662&range=00
  Issue: https://bugs.openjdk.org/browse/JDK-8377395
  Stats: 7 lines in 3 files changed: 0 ins; 2 del; 5 mod
  Patch: https://git.openjdk.org/jdk/pull/29662.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/29662/head:pull/29662

PR: https://git.openjdk.org/jdk/pull/29662


More information about the serviceability-dev mailing list