Java crash in JFR pd_get_top_frame_for_profiling
Issue
- Random crashes with the following in the fatal error log:
# SIGSEGV (0xb) at pc=0x00007fff7fd30634, pid=105812, tid=0x00007ffe958df170
#
# JRE version: OpenJDK Runtime Environment (8.0_282-b08) (build 1.8.0_282-b08)
# Java VM: OpenJDK 64-Bit Server VM (25.282-b08 mixed mode linux-ppc64le compressed oops)
# Problematic frame:
# V [libjvm.so+0xbe0634] JavaThread::pd_get_top_frame_for_profiling(frame*, void*, bool)+0x1f4
...
Current thread (0x00007ffeb4ee1800): Thread [stack: 0x00007ffe956e0000,0x00007ffe958e0000] [id=107493]
siginfo: si_signo: 11 (SIGSEGV), si_code: 1 (SEGV_MAPERR), si_addr: 0x0000000000000020
Stack: [0x00007ffe956e0000,0x00007ffe958e0000], sp=0x00007ffe958ddcc0, free space=2039k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
V [libjvm.so+0xbe0634] JavaThread::pd_get_top_frame_for_profiling(frame*, void*, bool)+0x1f4
V [libjvm.so+0x63193c] JfrGetCallTrace::get_topframe(void*, frame&)+0x4c
V [libjvm.so+0x68dd44] OSThreadSamplerCallback::call()+0xe4
V [libjvm.so+0x9af3bc] os::ThreadCrashProtection::call(os::CrashProtectionCallback&)+0xcc
V [libjvm.so+0x68888c] OSThreadSampler::do_task(os::SuspendedThreadTaskContext const&) [clone .part.36]+0x5c
V [libjvm.so+0x9a0c44] os::SuspendedThreadTask::internal_do_task()+0x414
V [libjvm.so+0x98d2f8] os::SuspendedThreadTask::run()+0x28
V [libjvm.so+0x689224] JfrThreadSampleClosure::do_sample_thread(JavaThread*, JfrStackFrame*, unsigned int, JfrSampleType)+0x2b4
V [libjvm.so+0x68d668] JfrThreadSampler::task_stacktrace(JfrSampleType, JavaThread**) [clone .constprop.66]+0x388
V [libjvm.so+0x68db68] JfrThreadSampler::run()+0x248
V [libjvm.so+0x99650c] java_start(Thread*)+0x22c
C [libpthread.so.0+0x87c8] start_thread+0xf8
Environment
- OpenJDK 8u282
- PowerPC architectures (POWER8, POWER9) regardless of the Endianness
- x86_64 is not affected
Subscriber exclusive content
A Red Hat subscription provides unlimited access to our knowledgebase, tools, and much more.