-
Bug
-
Resolution: Fixed
-
P3
-
24
-
b27
Running generational Shenandoah together with compact object headers currently results in crashes and asserts. E.g.:
make test TEST=gc/stress/gcold/TestGCOldWithShenandoah.java TEST_VM_OPTS="-XX:+UnlockExperimentalVMOptions -XX:+UseCompactObjectHeaders"
# Internal Error (/home/ubuntu/src/openjdk/jdk/src/hotspot/share/oops/markWord.hpp:224), pid=1426935, tid=1426952
# assert(!UseObjectMonitorTable) failed: Lightweight locking with OM table does not use markWord for monitors
Stack: [0x00007c25add5b000,0x00007c25ade5b000], sp=0x00007c25ade59950, free space=1018k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
V [libjvm.so+0xb5cdd5] markWord::monitor() const+0xad (markWord.hpp:224)
V [libjvm.so+0x164a6d2] ShenandoahHeap::get_object_age(oopDesc*)+0xa2 (shenandoahHeap.inline.hpp:336)
V [libjvm.so+0x169d79d] void ShenandoahMark::count_liveness<(ShenandoahGenerationType)2>(unsigned short*, oopDesc*, unsigned int)+0x179 (shenandoahMark.inline.hpp:122)
V [libjvm.so+0x1699f4c] void ShenandoahMark::do_task<ShenandoahMarkRefsClosure<(ShenandoahGenerationType)2>, (ShenandoahGenerationType)2, (StringDedupMode)0>(Padded<BufferedOverflowTaskQueue<ShenandoahMarkTask, (MemTag)5, 131072u>, 128ul>*, ShenandoahMarkRefsClosure<(ShenandoahGenerationType)2>*, unsigned short*, StringDedup::Requests*, ShenandoahMarkTask*, unsigned int)+0x1f8 (shenandoahMark.inline.hpp:102)
V [libjvm.so+0x168b7d3] void ShenandoahMark::mark_loop_work<ShenandoahMarkRefsClosure<(ShenandoahGenerationType)2>, (ShenandoahGenerationType)2, true, (StringDedupMode)0>(ShenandoahMarkRefsClosure<(ShenandoahGenerationType)2>*, unsigned short*, unsigned int, TaskTerminator*, StringDedup::Requests*)+0x449 (shenandoahMark.cpp:197)
V [libjvm.so+0x168926f] void ShenandoahMark::mark_loop_prework<(ShenandoahGenerationType)2, true, (StringDedupMode)0>(unsigned int, TaskTerminator*, ShenandoahReferenceProcessor*, StringDedup::Requests*, bool)+0x107 (shenandoahMark.cpp:75)
V [libjvm.so+0x1688ac8] void ShenandoahMark::mark_loop<true, (StringDedupMode)0>(unsigned int, TaskTerminator*, ShenandoahReferenceProcessor*, ShenandoahGenerationType, StringDedup::Requests*)+0x8a (shenandoahMark.cpp:87)
V [libjvm.so+0x16871a2] ShenandoahMark::mark_loop(unsigned int, TaskTerminator*, ShenandoahReferenceProcessor*, ShenandoahGenerationType, bool, StringDedupMode, StringDedup::Requests*)+0x72 (shenandoahMark.cpp:110)
V [libjvm.so+0x1616821] ShenandoahConcurrentMarkingTask<(ShenandoahGenerationType)2>::work(unsigned int)+0x15f (shenandoahConcurrentMark.cpp:72)
V [libjvm.so+0x19ca21a] WorkerTaskDispatcher::worker_run_task()+0x84 (workerThread.cpp:70)
V [libjvm.so+0x19ca938] WorkerThread::run()+0x34 (workerThread.cpp:201)
V [libjvm.so+0x18601d5] Thread::call_run()+0x1bd (thread.cpp:232)
V [libjvm.so+0x1497a28] thread_native_entry(Thread*)+0x1cf (os_linux.cpp:849)
C [libc.so.6+0x9ca94]
make test TEST=gc/stress/gcold/TestGCOldWithShenandoah.java TEST_VM_OPTS="-XX:+UnlockExperimentalVMOptions -XX:+UseCompactObjectHeaders"
# Internal Error (/home/ubuntu/src/openjdk/jdk/src/hotspot/share/oops/markWord.hpp:224), pid=1426935, tid=1426952
# assert(!UseObjectMonitorTable) failed: Lightweight locking with OM table does not use markWord for monitors
Stack: [0x00007c25add5b000,0x00007c25ade5b000], sp=0x00007c25ade59950, free space=1018k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
V [libjvm.so+0xb5cdd5] markWord::monitor() const+0xad (markWord.hpp:224)
V [libjvm.so+0x164a6d2] ShenandoahHeap::get_object_age(oopDesc*)+0xa2 (shenandoahHeap.inline.hpp:336)
V [libjvm.so+0x169d79d] void ShenandoahMark::count_liveness<(ShenandoahGenerationType)2>(unsigned short*, oopDesc*, unsigned int)+0x179 (shenandoahMark.inline.hpp:122)
V [libjvm.so+0x1699f4c] void ShenandoahMark::do_task<ShenandoahMarkRefsClosure<(ShenandoahGenerationType)2>, (ShenandoahGenerationType)2, (StringDedupMode)0>(Padded<BufferedOverflowTaskQueue<ShenandoahMarkTask, (MemTag)5, 131072u>, 128ul>*, ShenandoahMarkRefsClosure<(ShenandoahGenerationType)2>*, unsigned short*, StringDedup::Requests*, ShenandoahMarkTask*, unsigned int)+0x1f8 (shenandoahMark.inline.hpp:102)
V [libjvm.so+0x168b7d3] void ShenandoahMark::mark_loop_work<ShenandoahMarkRefsClosure<(ShenandoahGenerationType)2>, (ShenandoahGenerationType)2, true, (StringDedupMode)0>(ShenandoahMarkRefsClosure<(ShenandoahGenerationType)2>*, unsigned short*, unsigned int, TaskTerminator*, StringDedup::Requests*)+0x449 (shenandoahMark.cpp:197)
V [libjvm.so+0x168926f] void ShenandoahMark::mark_loop_prework<(ShenandoahGenerationType)2, true, (StringDedupMode)0>(unsigned int, TaskTerminator*, ShenandoahReferenceProcessor*, StringDedup::Requests*, bool)+0x107 (shenandoahMark.cpp:75)
V [libjvm.so+0x1688ac8] void ShenandoahMark::mark_loop<true, (StringDedupMode)0>(unsigned int, TaskTerminator*, ShenandoahReferenceProcessor*, ShenandoahGenerationType, StringDedup::Requests*)+0x8a (shenandoahMark.cpp:87)
V [libjvm.so+0x16871a2] ShenandoahMark::mark_loop(unsigned int, TaskTerminator*, ShenandoahReferenceProcessor*, ShenandoahGenerationType, bool, StringDedupMode, StringDedup::Requests*)+0x72 (shenandoahMark.cpp:110)
V [libjvm.so+0x1616821] ShenandoahConcurrentMarkingTask<(ShenandoahGenerationType)2>::work(unsigned int)+0x15f (shenandoahConcurrentMark.cpp:72)
V [libjvm.so+0x19ca21a] WorkerTaskDispatcher::worker_run_task()+0x84 (workerThread.cpp:70)
V [libjvm.so+0x19ca938] WorkerThread::run()+0x34 (workerThread.cpp:201)
V [libjvm.so+0x18601d5] Thread::call_run()+0x1bd (thread.cpp:232)
V [libjvm.so+0x1497a28] thread_native_entry(Thread*)+0x1cf (os_linux.cpp:849)
C [libc.so.6+0x9ca94]
- relates to
-
JDK-8307343 Implementation: JEP 404: Generational Shenandoah (Experimental)
-
- Closed
-
- links to
-
Commit(master) openjdk/jdk/e9f6ba05
-
Review(master) openjdk/jdk/22477