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

CDS ArchiveHeapTestClass.java test asserts when vm_exit is called on VM thread

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Fixed
    • Icon: P3 P3
    • 21
    • 21
    • hotspot
    • b20
    • aarch64
    • os_x

      The following test failed in the JDK21 CI:

      runtime/cds/appcds/cacheObject/ArchiveHeapTestClass.java

      Here's snippets from the hs_err_pid file:

      # Internal Error (/System/Volumes/Data/mesos/work_dir/slaves/741e9afd-8c02-45c3-b2e2-9db1450d0832-S65008/frameworks/1735e8a2-a1db-478c-8104-60c8b0af87dd-0196/executors/43400d5d-58a9-4063-b829-40c489be60da/runs/2503f40a-bd21-4674-9378-ad50808570e5/workspace/open/src/hotspot/share/runtime/mutex.cpp:57), pid=1197, tid=15107
      # fatal error: VM thread could block on lock that may be held by a JavaThread during safepoint: Heap_lock
      #
      # JRE version: Java(TM) SE Runtime Environment (21.0+19) (fastdebug build 21-ea+19-LTS-1562)
      # Java VM: Java HotSpot(TM) 64-Bit Server VM (fastdebug 21-ea+19-LTS-1562, interpreted mode, tiered, compressed oops, compressed class ptrs, g1 gc, bsd-aarch64)

      <snip>

      --------------- T H R E A D ---------------

      Current thread (0x000000014260e6b0): VMThread "VM Thread" [stack: 0x000000016e1f4000,0x000000016e3f7000] [id=15107]

      Stack: [0x000000016e1f4000,0x000000016e3f7000], sp=0x000000016e3f5ab0, free space=2054k
      Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
      V [libjvm.dylib+0x12b76ac] VMError::report_and_die(int, char const*, char const*, char*, Thread*, unsigned char*, void*, void*, char const*, int, unsigned long)+0x4bc (mutex.cpp:57)
      V [libjvm.dylib+0x670818] report_fatal(VMErrorType, char const*, int, char const*, ...)+0x88
      V [libjvm.dylib+0xf02dd0] Mutex::check_safepoint_state(Thread*)+0x5c
      V [libjvm.dylib+0xf033a4] Mutex::lock(Thread*)+0x68
      V [libjvm.dylib+0x995654] vm_exit(int)+0x110
      V [libjvm.dylib+0x916bd0] KlassSubGraphInfo::check_allowed_klass(InstanceKlass*)+0xa0
      V [libjvm.dylib+0x9167d8] KlassSubGraphInfo::add_subgraph_object_klass(Klass*)+0x724
      V [libjvm.dylib+0x91355c] HeapShared::archive_reachable_objects_from(int, KlassSubGraphInfo*, oop, bool)+0x7f8
      V [libjvm.dylib+0x91c6bc] void WalkOopAndArchiveClosure::do_oop_work<narrowOop>(narrowOop*)+0x42c
      V [libjvm.dylib+0x920edc] void ObjArrayKlass::oop_oop_iterate<narrowOop, WalkOopAndArchiveClosure>(oop, WalkOopAndArchiveClosure*)+0x2b0
      V [libjvm.dylib+0x920b98] void OopOopIterateDispatch<WalkOopAndArchiveClosure>::Table::oop_oop_iterate<ObjArrayKlass, narrowOop>(WalkOopAndArchiveClosure*, oop, Klass*)+0x4c
      V [libjvm.dylib+0x9199a0] void oopDesc::oop_iterate<WalkOopAndArchiveClosure>(WalkOopAndArchiveClosure*)+0x118
      V [libjvm.dylib+0x913600] HeapShared::archive_reachable_objects_from(int, KlassSubGraphInfo*, oop, bool)+0x89c
      V [libjvm.dylib+0x919be8] HeapShared::archive_reachable_objects_from_static_field(InstanceKlass*, char const*, int, char const*, bool)+0x210
      V [libjvm.dylib+0x915bd0] HeapShared::archive_object_subgraphs(ArchivableStaticFieldInfo*, bool, bool)+0x11c
      V [libjvm.dylib+0x9153a8] HeapShared::copy_open_objects()+0x10c
      V [libjvm.dylib+0x914e3c] HeapShared::archive_objects(GrowableArray<MemRegion>*, GrowableArray<MemRegion>*, GrowableArray<ArchiveHeapBitmapInfo>*, GrowableArray<ArchiveHeapBitmapInfo>*)+0x2f0
      V [libjvm.dylib+0xead268] VM_PopulateDumpSharedSpace::dump_java_heap_objects(GrowableArray<Klass*>*)+0x510
      V [libjvm.dylib+0xeacbb8] VM_PopulateDumpSharedSpace::doit()+0xe0
      V [libjvm.dylib+0x12bed40] VM_Operation::evaluate()+0x1cc
      V [libjvm.dylib+0x12e529c] VMThread::evaluate_operation(VM_Operation*)+0x198
      V [libjvm.dylib+0x12e5dec] VMThread::inner_execute(VM_Operation*)+0x334
      V [libjvm.dylib+0x12e4edc] VMThread::loop()+0xc4
      V [libjvm.dylib+0x12e4ca0] VMThread::run()+0xd0
      V [libjvm.dylib+0x11f0c34] Thread::call_run()+0x134
      V [libjvm.dylib+0xf731e8] thread_native_entry(Thread*)+0x160
      C [libsystem_pthread.dylib+0x726c] _pthread_start+0x94
      VM_Operation (0x000000016d7aeb70): PopulateDumpSharedSpace, mode: safepoint, requested by thread 0x000000014280ea10

            matsaave Matias Saavedra Silva
            dcubed Daniel Daugherty
            Votes:
            0 Vote for this issue
            Watchers:
            5 Start watching this issue

              Created:
              Updated:
              Resolved: