Java crash in GCTaskThread while Shenandoah collector concurrent marking
Issue
Java application with Shenandoah GC crashes when executing GCTaskThread
with the following in the fatal error log (RHEL7):
# SIGSEGV (0xb) at pc=0x00007f90f122912d, pid=19906, tid=0x00007f90ee71e700
#
# JRE version: OpenJDK Runtime Environment (8.0_262-b10) (build 1.8.0_262-b10)
# Java VM: OpenJDK 64-Bit Server VM (25.262-b10 mixed mode linux-amd64 )
# Problematic frame:
# V [libjvm.so+0xa2e12d] void ShenandoahConcurrentMark::mark_loop_work<ShenandoahMarkRefsClosure, true>(ShenandoahMarkRefsClosure*, unsigned short*, unsigned int, ShenandoahTaskTerminator*)+0x19d
...
Current thread (0x00007f90e8060000): GCTaskThread [stack: 0x00007f90ee61f000,0x00007f90ee71f000] [id=19908]
siginfo: si_signo: 11 (SIGSEGV), si_code: 128 (SI_KERNEL), si_addr: 0x0000000000000000
Stack: [0x00007f90ee61f000,0x00007f90ee71f000], sp=0x00007f90ee71dba0, free space=1018k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
V [libjvm.so+0xa2e12d] void ShenandoahConcurrentMark::mark_loop_work<ShenandoahMarkRefsClosure, true>(ShenandoahMarkRefsClosure*, unsigned short*, unsigned int, ShenandoahTaskTerminator*)+0x19d
V [libjvm.so+0xa36c59] void ShenandoahConcurrentMark::mark_loop_prework<true>(unsigned int, ShenandoahTaskTerminator*, ReferenceProcessor*, bool)+0x209
V [libjvm.so+0xa36fd4] ShenandoahConcurrentMarkingTask::work(unsigned int)+0xd4
V [libjvm.so+0xb7398a] GangWorker::loop()+0xca
V [libjvm.so+0x93a382] java_start(Thread*)+0xf2
Java application crashes with the following in the fatal error log (RHEL6):
# SIGSEGV (0xb) at pc=0x00007f32900f8a10, pid=10797, tid=0x00007f328dae5700
#
# JRE version: OpenJDK Runtime Environment (8.0_262-b10) (build 1.8.0_262-b10)
# Java VM: OpenJDK 64-Bit Server VM (25.262-b10 mixed mode linux-amd64 )
# Problematic frame:
# V [libjvm.so+0xa41a10]
...
Current thread (0x00007f3288064040): GCTaskThread [stack: 0x00007f328d9e5000,0x00007f328dae6000] [id=10828]
...
Stack: [0x00007f328d9e5000,0x00007f328dae6000], sp=0x00007f328dae4780, free space=1021k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
V [libjvm.so+0xa41a10]
V [libjvm.so+0xa47cb7]
V [libjvm.so+0xa553c8]
V [libjvm.so+0xb93fd7]
V [libjvm.so+0x967dd2]
- VM is not at safepoint:
VM state:not at safepoint (normal execution)
- Shenandoah executing
GCTaskThread
, which is doing concurrent marking:
Status: marking, not cancelled
...
Event: 1256.342 Concurrent marking
- RHEL6 backtrace:
(gdb) bt
#0 0x00007f461055d4f5 in raise (sig=6) at ../nptl/sysdeps/unix/sysv/linux/raise.c:64
#1 0x00007f461055ecd5 in abort () at abort.c:92
#2 0x00007f460fdd7445 in os::abort (dump_core=true) at /usr/src/debug/java-1.8.0-openjdk-1.8.0.262.b10-0.el6_10.x86_64/openjdk/hotspot/src/os/linux/vm/os_linux.cpp:1572
#3 0x00007f460ffe46c3 in VMError::report_and_die (this=0x7f460d79e460)
at /usr/src/debug/java-1.8.0-openjdk-1.8.0.262.b10-0.el6_10.x86_64/openjdk/hotspot/src/share/vm/utilities/vmError.cpp:1112
#4 0x00007f460fdddf02 in JVM_handle_linux_signal (sig=11, info=0x7f460d79e670, ucVoid=0x7f460d79e540, abort_if_unrecognized=226092000)
at /usr/src/debug/java-1.8.0-openjdk-1.8.0.262.b10-0.el6_10.x86_64/openjdk/hotspot/src/os_cpu/linux_x86/vm/os_linux_x86.cpp:541
#5 0x00007f460fdd2fd3 in signalHandler (sig=11, info=0x7f460d79e670, uc=0x7f460d79e540)
at /usr/src/debug/java-1.8.0-openjdk-1.8.0.262.b10-0.el6_10.x86_64/openjdk/hotspot/src/os/linux/vm/os_linux.cpp:4591
#6 <signal handler called>
#7 do_task<ShenandoahMarkRefsClosure> (this=0x7f4608061280, cl=0x7f460d79ed40, live_data=0x7f46080a15f0, worker_id=4, terminator=0x7f460c2925e0)
at /usr/src/debug/java-1.8.0-openjdk-1.8.0.262.b10-0.el6_10.x86_64/openjdk/hotspot/src/share/vm/gc_implementation/shenandoah/shenandoahConcurrentMark.inline.hpp:48
#8 ShenandoahConcurrentMark::mark_loop_work<ShenandoahMarkRefsClosure, true> (this=0x7f4608061280, cl=0x7f460d79ed40, live_data=0x7f46080a15f0, worker_id=4,
terminator=0x7f460c2925e0)
at /usr/src/debug/java-1.8.0-openjdk-1.8.0.262.b10-0.el6_10.x86_64/openjdk/hotspot/src/share/vm/gc_implementation/shenandoah/shenandoahConcurrentMark.cpp:1003
#9 0x00007f460feb9cb7 in ShenandoahConcurrentMark::mark_loop_prework<true> (this=0x7f4608061280, w=4, t=0x7f460c2925e0, rp=0x7f4608178e10, strdedup=<value optimized out>)
at /usr/src/debug/java-1.8.0-openjdk-1.8.0.262.b10-0.el6_10.x86_64/openjdk/hotspot/src/share/vm/gc_implementation/shenandoah/shenandoahConcurrentMark.cpp:932
#10 0x00007f460fec73c8 in mark_loop (this=0x7f460c2925a0, worker_id=4)
at /usr/src/debug/java-1.8.0-openjdk-1.8.0.262.b10-0.el6_10.x86_64/openjdk/hotspot/src/share/vm/gc_implementation/shenandoah/shenandoahConcurrentMark.hpp:67
#11 ShenandoahConcurrentMarkingTask::work (this=0x7f460c2925a0, worker_id=4)
at /usr/src/debug/java-1.8.0-openjdk-1.8.0.262.b10-0.el6_10.x86_64/openjdk/hotspot/src/share/vm/gc_implementation/shenandoah/shenandoahConcurrentMark.cpp:181
#12 0x00007f4610005fd7 in GangWorker::loop (this=0x7f46080656e0)
at /usr/src/debug/java-1.8.0-openjdk-1.8.0.262.b10-0.el6_10.x86_64/openjdk/hotspot/src/share/vm/utilities/workgroup.cpp:329
#13 0x00007f460fdd9dd2 in java_start (thread=0x7f46080656e0)
at /usr/src/debug/java-1.8.0-openjdk-1.8.0.262.b10-0.el6_10.x86_64/openjdk/hotspot/src/os/linux/vm/os_linux.cpp:847
#14 0x00007f4610eefaa1 in start_thread (arg=0x7f460d79f700) at pthread_create.c:301
#15 0x00007f4610613c4d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:115
Environment
- OpenJDK 8
- Shenandoah collector
Subscriber exclusive content
A Red Hat subscription provides unlimited access to our knowledgebase, tools, and much more.