Java crash with Shenandoah collector in MetadataOnStackMark::~MetadataOnStackMark
Issue
- Tomcat application crashing regularly every ~12 days.
- Core backtrace current thread:
#0 0x00007fad932c44f5 in ?? () from /lib64/libc.so.6
#1 0x00007fad932c5cd5 in abort () at abort.c:103
#2 0x00007fad92b3c7d5 in os::abort (dump_core=true) at /usr/src/debug/java-1.8.0-openjdk-1.8.0.275.b01-0.el6_10.x86_64/openjdk/hotspot/src/os/linux/vm/os_linux.cpp:1572
#3 0x00007fad92d4c2b3 in VMError::report_and_die (this=0x7fad7c7fcfe0) at /usr/src/debug/java-1.8.0-openjdk-1.8.0.275.b01-0.el6_10.x86_64/openjdk/hotspot/src/share/vm/utilities/vmError.cpp:1112
#4 0x00007fad92b43292 in JVM_handle_linux_signal (sig=11, info=0x7fad7c7fd1f0, ucVoid=0x7fad7c7fd0c0, abort_if_unrecognized=2088750944)
at /usr/src/debug/java-1.8.0-openjdk-1.8.0.275.b01-0.el6_10.x86_64/openjdk/hotspot/src/os_cpu/linux_x86/vm/os_linux_x86.cpp:541
#5 0x00007fad92b38363 in signalHandler (sig=11, info=0x7fad7c7fd1f0, uc=0x7fad7c7fd0c0) at /usr/src/debug/java-1.8.0-openjdk-1.8.0.275.b01-0.el6_10.x86_64/openjdk/hotspot/src/os/linux/vm/os_linux.cpp:4591
#6 <signal handler called>
#7 0x00007fad92aada6a in MetadataOnStackMark::~MetadataOnStackMark (this=<value optimized out>, __in_chrg=<value optimized out>)
at /usr/src/debug/java-1.8.0-openjdk-1.8.0.275.b01-0.el6_10.x86_64/openjdk/hotspot/src/share/vm/classfile/metadataOnStackMark.cpp:72
#8 0x00007fad92c34075 in ShenandoahHeap::unload_classes_and_cleanup_tables (this=0x7fad8c05c930, full_gc=false)
at /usr/src/debug/java-1.8.0-openjdk-1.8.0.275.b01-0.el6_10.x86_64/openjdk/hotspot/src/share/vm/gc_implementation/shenandoah/shenandoahHeap.cpp:1924
#9 0x00007fad92c0ac56 in ShenandoahConcurrentMark::finish_mark_from_roots (this=0x7fad8c05d6c0, full_gc=false)
at /usr/src/debug/java-1.8.0-openjdk-1.8.0.275.b01-0.el6_10.x86_64/openjdk/hotspot/src/share/vm/gc_implementation/shenandoah/shenandoahConcurrentMark.cpp:501
#10 0x00007fad92c3ba03 in ShenandoahHeap::op_final_mark (this=<value optimized out>)
at /usr/src/debug/java-1.8.0-openjdk-1.8.0.275.b01-0.el6_10.x86_64/openjdk/hotspot/src/share/vm/gc_implementation/shenandoah/shenandoahHeap.cpp:1435
#11 0x00007fad92c3c137 in ShenandoahHeap::entry_final_mark (this=0x7fad8c05c930)
at /usr/src/debug/java-1.8.0-openjdk-1.8.0.275.b01-0.el6_10.x86_64/openjdk/hotspot/src/share/vm/gc_implementation/shenandoah/shenandoahHeap.cpp:2395
#12 0x00007fad92c60ed9 in VM_ShenandoahFinalMarkStartEvac::doit (this=<value optimized out>)
at /usr/src/debug/java-1.8.0-openjdk-1.8.0.275.b01-0.el6_10.x86_64/openjdk/hotspot/src/share/vm/gc_implementation/shenandoah/shenandoahVMOperations.cpp:56
#13 0x00007fad92d556f2 in VM_Operation::evaluate (this=0x7fad90602a80) at /usr/src/debug/java-1.8.0-openjdk-1.8.0.275.b01-0.el6_10.x86_64/openjdk/hotspot/src/share/vm/runtime/vm_operations.cpp:61
#14 0x00007fad92d5303f in VMThread::evaluate_operation (this=<value optimized out>, op=0x7fad90602a80)
at /usr/src/debug/java-1.8.0-openjdk-1.8.0.275.b01-0.el6_10.x86_64/openjdk/hotspot/src/share/vm/runtime/vmThread.cpp:396
#15 0x00007fad92d5431e in VMThread::loop (this=0x7fad8c12f800) at /usr/src/debug/java-1.8.0-openjdk-1.8.0.275.b01-0.el6_10.x86_64/openjdk/hotspot/src/share/vm/runtime/vmThread.cpp:512
#16 0x00007fad92d547d3 in VMThread::run (this=0x7fad8c12f800) at /usr/src/debug/java-1.8.0-openjdk-1.8.0.275.b01-0.el6_10.x86_64/openjdk/hotspot/src/share/vm/runtime/vmThread.cpp:279
#17 0x00007fad92b3f162 in java_start (thread=0x7fad8c12f800) at /usr/src/debug/java-1.8.0-openjdk-1.8.0.275.b01-0.el6_10.x86_64/openjdk/hotspot/src/os/linux/vm/os_linux.cpp:847
#18 0x00007fad93c56aa1 in start_thread (arg=0x7fad7c7ff700) at pthread_create.c:301
#19 0x00007fad9337ac4d in lseek64 () at ../sysdeps/unix/syscall-template.S:84
#20 0x0000000000000000 in ?? ()
- Crash within this frame:
#7 0x00007fad92aada6a in MetadataOnStackMark::~MetadataOnStackMark (this=<value optimized out>, __in_chrg=<value optimized out>)
at /usr/src/debug/java-1.8.0-openjdk-1.8.0.275.b01-0.el6_10.x86_64/openjdk/hotspot/src/share/vm/classfile/metadataOnStackMark.cpp:72
72 md->set_on_stack(false);
- metadataOnStackMark.cpp:72:
67 while (buffer != NULL) {
68 // Clear on stack state for all metadata.
69 size_t size = buffer->size();
70 for (size_t i = 0; i < size; i++) {
71 Metadata* md = buffer->at(i);
72 md->set_on_stack(false);
73 }
74
75 MetadataOnStackBuffer* next = buffer->next_used();
76
Environment
- Red Hat Enterprise Linux (RHEL) 6.10 X86_64
- Red Hat build of OpenJDK 1.8.0_275-b01
- Shenandoah garbage collector
Subscriber exclusive content
A Red Hat subscription provides unlimited access to our knowledgebase, tools, and much more.