JDK-8321116 : AsyncGetCallTrace crashes on macOS/AArch64 after JDK-8314600
  • Type: Bug
  • Component: hotspot
  • Sub-Component: svc
  • Affected Version: 11.0.21
  • Priority: P3
  • Status: New
  • Resolution: Unresolved
  • OS: os_x
  • CPU: aarch64
  • Submitted: 2023-11-30
  • Updated: 2023-12-08
Related Reports
Relates :  
Relates :  
Description
The backport of JDK-8313796 (AsyncGetCallTrace crash on unreadable interpreter method pointer) introduced a call to SafeFetchN from inside AsyncGetCallTrace. However, dynamically generated SafeFetch must not be called from a signal handler for the reasons described in JDK-8307549.

#
# A fatal error has been detected by the Java Runtime Environment:
#
#  SIGBUS (0xa) at pc=0x000000011525fdb8, pid=26660, tid=37379
#

v  ~StubRoutines::SafeFetchN
V  [libjvm.dylib+0x273764]  frame::is_interpreted_frame_valid(JavaThread*) const+0x68
V  [libjvm.dylib+0x273508]  frame::safe_for_sender(JavaThread*)+0x338
V  [libjvm.dylib+0x71297c]  JavaThread::pd_get_top_frame(frame*, void*, bool)+0x120
V  [libjvm.dylib+0x270648]  AsyncGetCallTrace+0x1a4
C  [libasyncProfiler.so+0x20dc0]  Profiler::getJavaTraceAsync(void*, ASGCT_CallFrame*, int, StackContext*)+0x15c