Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-8247560

Shenandoah: heap iteration holds root locks all the time

XMLWordPrintable

    • gc
    • b28

        (synopsis is provisional until the root cause is found)

        $ CONF=linux-x86_64-server-fastdebug make images run-test TEST=serviceability/dcmd/gc/HeapDumpCompressedTest.java

        Attempting to wait on monitor HProf Compression Backend/11 while holding lock CodeCache_lock/6 -- possible deadlock

        # Internal Error (/home/shade/trunks/jdk-jdk/src/hotspot/share/runtime/mutex.cpp:183), pid=80261, tid=80275
        # assert(false) failed: Shouldn't block(wait) while holding a lock of rank special
        #
        # JRE version: OpenJDK Runtime Environment (15.0) (fastdebug build 15-internal+0-adhoc.shade.jdk-jdk)
        # Problematic frame:
        # V [libjvm.so+0x12004bb] Monitor::assert_wait_lock_state(Thread*)+0x15b

        Host: shade-desktop, AMD Ryzen Threadripper 3970X 32-Core Processor, 64 cores, 125G, Ubuntu 18.04.4 LTS
        Time: Mon Jun 15 08:51:51 2020 CEST elapsed time: 1.326935 seconds (0d 0h 0m 1s)

        Current thread (0x00007f065c2233a0): VMThread "VM Thread" [stack: 0x00007f0640a63000,0x00007f0640b63000] [id=80275]

        Stack: [0x00007f0640a63000,0x00007f0640b63000], sp=0x00007f0640b60d40, free space=1015k
        Native frames: (J=compiled Java code, A=aot compiled Java code, j=interpreted, Vv=VM code, C=native code)
        V [libjvm.so+0x12004bb] Monitor::assert_wait_lock_state(Thread*)+0x15b
        V [libjvm.so+0x1201877] Monitor::wait_without_safepoint_check(long)+0x97
        V [libjvm.so+0xb91d7a] CompressionBackend::get_new_buffer(char**, unsigned long*, unsigned long*)+0xfa
        V [libjvm.so+0xb850a8] DumpWriter::finish_dump_segment() [clone .part.87]+0x58
        V [libjvm.so+0xb8522d] DumpWriter::start_sub_record(unsigned char, unsigned int)+0x9d
        V [libjvm.so+0xb8a1bf] DumperSupport::dump_object_array(DumpWriter*, objArrayOop)+0x6f
        V [libjvm.so+0xb8abd0] HeapObjectDumper::do_object(oop)+0x300
        V [libjvm.so+0x14b8554] ShenandoahHeap::object_iterate(ObjectClosure*)+0x244
        V [libjvm.so+0xb8635e] VM_HeapDumper::work(unsigned int)+0x13e
        V [libjvm.so+0x17b7e83] SemaphoreGangTaskDispatcher::coordinator_execute_on_workers(AbstractGangTask*, unsigned int, bool)+0x93
        V [libjvm.so+0x17b6fe6] WorkGang::run_task(AbstractGangTask*, unsigned int, bool)+0xf6
        V [libjvm.so+0xb8274c] VM_HeapDumper::doit()+0x11c
        V [libjvm.so+0x1744b5d] VM_Operation::evaluate()+0x1cd
        V [libjvm.so+0x1773a5b] VMThread::evaluate_operation(VM_Operation*) [clone .constprop.73]+0x13b
        V [libjvm.so+0x177449d] VMThread::loop()+0x7bd
        V [libjvm.so+0x17748ea] VMThread::run()+0xca
        V [libjvm.so+0x1681c46] Thread::call_run()+0xf6
        V [libjvm.so+0x12ab52e] thread_native_entry(Thread*)+0x10e

        VM Mutex/Monitor currently owned by a thread: ([mutex/lock_event])
        [0x00007f065c025c90] CodeCache_lock - owner thread: 0x00007f065c2233a0
        [0x00007f065c027b90] Threads_lock - owner thread: 0x00007f065c2233a0
        [0x00007f065c028850] Heap_lock - owner thread: 0x00007f0628000ec0

              shade Aleksey Shipilev
              shade Aleksey Shipilev
              Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

                Created:
                Updated:
                Resolved: