-
Bug
-
Resolution: Fixed
-
P3
-
11-shenandoah, 13, 14
-
b15
During concurrent evacuation, GC can be cancelled by a worker thread, which can result assertion failure during thread state transition.
#
# A fatal error has been detected by the Java Runtime Environment:
#
# Internal Error (src/hotspot/share/runtime/thread.hpp:2063), pid=23171, tid=23185
# assert(thread->is_Java_thread()) failed: just checking
#
# JRE version: OpenJDK Runtime Environment (14.0) (fastdebug build 14-internal+0-adhoc.zgu.sh-jdk)
# Java VM: OpenJDK 64-Bit Server VM (fastdebug 14-internal+0-adhoc.zgu.sh-jdk, mixed mode, tiered, compressed oops, shenandoah gc, linux-amd64)
# Problematic frame:
# V [libjvm.so+0x15f747c] ShenandoahHeap::try_cancel_gc()+0x26c
#
--------------- T H R E A D ---------------
Current thread (0x00007ff300001000): GCTaskThread "Shenandoah GC Threads#2" [stack: 0x00007ff318072000,0x00007ff318172000] [id=23185]
Stack: [0x00007ff318072000,0x00007ff318172000], sp=0x00007ff318170270, free space=1016k
Native frames: (J=compiled Java code, A=aot compiled Java code, j=interpreted, Vv=VM code, C=native code)
V [libjvm.so+0x15f747c] ShenandoahHeap::try_cancel_gc()+0x26c
V [libjvm.so+0x15fc860] ShenandoahHeap::cancel_gc(GCCause::Cause)+0x10
V [libjvm.so+0x13732c0] ShenandoahHeap::evacuate_object(oop, Thread*)+0x3a0
V [libjvm.so+0x16017c6] ShenandoahConcurrentEvacuateRegionObjectClosure::do_object(oop)+0x86
V [libjvm.so+0x1602005] void ShenandoahHeap::marked_object_iterate<ShenandoahConcurrentEvacuateRegionObjectClosure>(ShenandoahHeapRegion*, ShenandoahConcurrentEvacuateRegionObjectClosure*, HeapWordImpl**) [clone .constprop.332]+0x7c5
V [libjvm.so+0x1602650] ShenandoahEvacuationTask::do_work()+0x90
V [libjvm.so+0x160285a] ShenandoahEvacuationTask::work(unsigned int)+0x8a
V [libjvm.so+0x18eff04] GangWorker::run_task(WorkData)+0x84
V [libjvm.so+0x18f0048] GangWorker::loop()+0x48
V [libjvm.so+0x17c4996] Thread::call_run()+0xf6
V [libjvm.so+0x13df82e] thread_native_entry(Thread*)+0x10e
Register to memory mapping:
#
# A fatal error has been detected by the Java Runtime Environment:
#
# Internal Error (src/hotspot/share/runtime/thread.hpp:2063), pid=23171, tid=23185
# assert(thread->is_Java_thread()) failed: just checking
#
# JRE version: OpenJDK Runtime Environment (14.0) (fastdebug build 14-internal+0-adhoc.zgu.sh-jdk)
# Java VM: OpenJDK 64-Bit Server VM (fastdebug 14-internal+0-adhoc.zgu.sh-jdk, mixed mode, tiered, compressed oops, shenandoah gc, linux-amd64)
# Problematic frame:
# V [libjvm.so+0x15f747c] ShenandoahHeap::try_cancel_gc()+0x26c
#
--------------- T H R E A D ---------------
Current thread (0x00007ff300001000): GCTaskThread "Shenandoah GC Threads#2" [stack: 0x00007ff318072000,0x00007ff318172000] [id=23185]
Stack: [0x00007ff318072000,0x00007ff318172000], sp=0x00007ff318170270, free space=1016k
Native frames: (J=compiled Java code, A=aot compiled Java code, j=interpreted, Vv=VM code, C=native code)
V [libjvm.so+0x15f747c] ShenandoahHeap::try_cancel_gc()+0x26c
V [libjvm.so+0x15fc860] ShenandoahHeap::cancel_gc(GCCause::Cause)+0x10
V [libjvm.so+0x13732c0] ShenandoahHeap::evacuate_object(oop, Thread*)+0x3a0
V [libjvm.so+0x16017c6] ShenandoahConcurrentEvacuateRegionObjectClosure::do_object(oop)+0x86
V [libjvm.so+0x1602005] void ShenandoahHeap::marked_object_iterate<ShenandoahConcurrentEvacuateRegionObjectClosure>(ShenandoahHeapRegion*, ShenandoahConcurrentEvacuateRegionObjectClosure*, HeapWordImpl**) [clone .constprop.332]+0x7c5
V [libjvm.so+0x1602650] ShenandoahEvacuationTask::do_work()+0x90
V [libjvm.so+0x160285a] ShenandoahEvacuationTask::work(unsigned int)+0x8a
V [libjvm.so+0x18eff04] GangWorker::run_task(WorkData)+0x84
V [libjvm.so+0x18f0048] GangWorker::loop()+0x48
V [libjvm.so+0x17c4996] Thread::call_run()+0xf6
V [libjvm.so+0x13df82e] thread_native_entry(Thread*)+0x10e
Register to memory mapping: