RFR: 8350111: [PPC] AsyncGetCallTrace crashes when called while handling SIGTRAP

Richard Reingruber rrich at openjdk.org
Tue Feb 25 09:36:28 UTC 2025


With this change `JavaThread::pd_get_top_frame_for_profiling()` fails if the current thread is found to be `_thread_in_Java` but the CodeCache does not contain its pc.

This will prevent crashes as described by the JBS item.

The fix might be too conservative for situations where a thread doen't change its thread state when calling native code, e.g. using the Foreign Function & Memory API. The difficulty finding a less defensive fix is that one must detect if a valid pc can be found in the caller's ABI before constructing that frame.

Testing:

* DaCapo Tomcat with async-profiler on a fastdebug build.
* Tier 1-4 of hotspot and jdk on the main platforms and also on Linux/PPC64le and AIX.

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

Commit messages:
 - Handle attempt to sample stack while handling SIGTRAP

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

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


More information about the hotspot-runtime-dev mailing list