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

java_lang_Thread::get_thread_status fails assert(base != nullptr) failed: Invalid base

XMLWordPrintable

    • In Review
    • x86_64, aarch64
    • linux, windows

      The following test failed in the JDK26 CI:

      com/sun/management/HotSpotDiagnosticMXBean/DumpThreads.java

      Here's a snippet from the log file:

      #section:junit
      ----------messages:(8/639)----------
      command: junit -Xbootclasspath/a:. -XX:+UnlockDiagnosticVMOptions -XX:+WhiteBoxAPI --enable-native-access=ALL-UNNAMED -Djdk.trackAllThreads=false DumpThreads
      reason: User specified action: run junit/othervm -Xbootclasspath/a:. -XX:+UnlockDiagnosticVMOptions -XX:+WhiteBoxAPI --enable-native-access=ALL-UNNAMED -Djdk.trackAllThreads=false DumpThreads
      started: Tue Jul 29 19:19:47 UTC 2025
      Mode: othervm [/othervm specified]
      Additional options from @modules: --add-modules java.base,jdk.management --add-exports java.base/jdk.internal.vm=ALL-UNNAMED
      Process id: 4166196
      finished: Tue Jul 29 19:20:34 UTC 2025
      elapsed time (seconds): 47.063
      ----------configuration:(4/107)----------
      Boot Layer
        add modules: java.base jdk.management
        add exports: java.base/jdk.internal.vm ALL-UNNAMED

      ----------System.out:(22/1955)----------
      #
      # A fatal error has been detected by the Java Runtime Environment:
      #
      # Internal Error (/opt/mach5/mesos/work_dir/slaves/f7f8bd65-a387-4a2b-b519-702f2fefaf87-S165948/frameworks/1735e8a2-a1db-478c-8104-60c8b0af87dd-0196/executors/7526ff7e-6658-4f55-ae82-dfc9c6a76be0/runs/c7e3ce10-fdf6-4c2d-95b6-5580d28aee48/workspace/open/src/hotspot/share/gc/z/zBarrierSet.inline.hpp:60), pid=4166196, tid=4166392
      # assert(base != nullptr) failed: Invalid base
      #
      # JRE version: Java(TM) SE Runtime Environment (26.0+9) (fastdebug build 26-ea+9-879)
      # Java VM: Java HotSpot(TM) 64-Bit Server VM (fastdebug 26-ea+9-879, compiled mode, sharing, compressed class ptrs, z gc, linux-amd64)
      # Problematic frame:
      # V [libjvm.so+0x6ab674] AccessInternal::PostRuntimeDispatch<ZBarrierSet::AccessBarrier<286790ul, ZBarrierSet>, (AccessInternal::BarrierType)3, 286790ul>::oop_access_barrier(oop, long)+0x1f4
      #
      # Core dump will be written. Default location: Core dumps may be processed with "/opt/core.sh %p" (or dumping to /opt/mach5/mesos/work_dir/slaves/f7f8bd65-a387-4a2b-b519-702f2fefaf87-S166055/frameworks/1735e8a2-a1db-478c-8104-60c8b0af87dd-0196/executors/f3803a0b-91f6-49f9-85e9-9f7cabef76d0/runs/584aadfc-c272-418f-bb91-ae0a5d6d46fb/testoutput/test-support/jtreg_open_test_jdk_jdk_loom/scratch/5/core.4166196)
      #
      # An error report file with more information is saved as:
      # /opt/mach5/mesos/work_dir/slaves/f7f8bd65-a387-4a2b-b519-702f2fefaf87-S166055/frameworks/1735e8a2-a1db-478c-8104-60c8b0af87dd-0196/executors/f3803a0b-91f6-49f9-85e9-9f7cabef76d0/runs/584aadfc-c272-418f-bb91-ae0a5d6d46fb/testoutput/test-support/jtreg_open_test_jdk_jdk_loom/scratch/5/hs_err_pid4166196.log
      [40.369s][warning][os] Loading hsdis library failed
           Locks owned:
          Mutex: [0x00007f56d4377808] HandshakeState_lock - owner: 0x00007f5754328640 allow_vm_block nosafepoint
      #
      # If you would like to submit a bug report, please visit:
      # https://bugreport.java.com/bugreport/crash.jsp
      #
      ----------System.err:(29/2368)----------
      STARTED DumpThreads::testParkedThreadWhenPinned 'testParkedThreadWhenPinned()'
      org.opentest4j.TestAbortedException: Assumption failed: This test requires all threads to be tracked
      ABORTED DumpThreads::testParkedThreadWhenPinned 'testParkedThreadWhenPinned()' [740ms]
      STARTED DumpThreads::testPlainText 'testPlainText()'
      Dumped to dump13792432401610819191.txt
      SUCCESSFUL DumpThreads::testPlainText 'testPlainText()' [3367ms]
      STARTED DumpThreads::testWaitingThreadWhenPinned 'testWaitingThreadWhenPinned()'
      org.opentest4j.TestAbortedException: Assumption failed: This test requires all threads to be tracked
      ABORTED DumpThreads::testWaitingThreadWhenPinned 'testWaitingThreadWhenPinned()' [59ms]
      STARTED DumpThreads::testThreadOwnsMonitor '[1] java.lang.ThreadBuilders$PlatformThreadFactory@253aa579'
      Dumped to dump9071906702727467063.txt
      Dumped to dump11440884598178860391.json
      SUCCESSFUL DumpThreads::testThreadOwnsMonitor '[1] java.lang.ThreadBuilders$PlatformThreadFactory@253aa579' [1571ms]
      STARTED DumpThreads::testThreadOwnsMonitorWhenPinned 'testThreadOwnsMonitorWhenPinned()'
      org.opentest4j.TestAbortedException: Assumption failed: This test requires all threads to be tracked
      ABORTED DumpThreads::testThreadOwnsMonitorWhenPinned 'testThreadOwnsMonitorWhenPinned()' [2ms]
      STARTED DumpThreads::testNull 'testNull()'
      SUCCESSFUL DumpThreads::testNull 'testNull()' [45ms]
      STARTED DumpThreads::testFileWriteFails 'testFileWriteFails()'
      SUCCESSFUL DumpThreads::testFileWriteFails 'testFileWriteFails()' [37ms]
      STARTED DumpThreads::testJsonFormat 'testJsonFormat()'
      Dumped to dump14812566658463330787.json
      SUCCESSFUL DumpThreads::testJsonFormat 'testJsonFormat()' [60ms]
      STARTED DumpThreads::testFileAlreadyExists 'testFileAlreadyExists()'
      SUCCESSFUL DumpThreads::testFileAlreadyExists 'testFileAlreadyExists()' [58ms]
      STARTED DumpThreads::testThreadContainer '[1] java.util.concurrent.ThreadPoolExecutor@7b25d4cd[Running, pool size = 0, active threads = 0, queued tasks = 0, completed tasks = 0]'
      Dumped to dump3199648731047715271.json
      SUCCESSFUL DumpThreads::testThreadContainer '[1] java.util.concurrent.ThreadPoolExecutor@7b25d4cd[Running, pool size = 0, active threads = 0, queued tasks = 0, completed tasks = 0]' [346ms]
      STARTED DumpThreads::testThreadContainer '[2] java.util.concurrent.ThreadPerTaskExecutor@3beef3d5'
      ----------rerun:(51/8130)*----------

      Here's the top part of the crashing thread's stack:

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

      Current thread (0x00007f5754328640): JavaThread "MainThread" [_thread_in_vm, id=4166392, stack(0x00007f5758a08000,0x00007f5758b08000) (1024K)] _threads_hazard_ptr=0x00007f56d4382f60, _nested_threads_hazard_ptr_cnt=0

      Stack: [0x00007f5758a08000,0x00007f5758b08000], sp=0x00007f5758b01de0, free space=999k
      Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
      V [libjvm.so+0x6ab674] AccessInternal::PostRuntimeDispatch<ZBarrierSet::AccessBarrier<286790ul, ZBarrierSet>, (AccessInternal::BarrierType)3, 286790ul>::oop_access_barrier(oop, long)+0x1f4 (zBarrierSet.inline.hpp:60)
      V [libjvm.so+0x6ae54d] oopDesc::obj_field(int) const+0x12d (accessBackend.hpp:448)
      V [libjvm.so+0x10a0f1c] java_lang_Thread::get_thread_status(oop)+0x8c (javaClasses.cpp:1764)
      V [libjvm.so+0x1b445f1] GetThreadSnapshotHandshakeClosure::do_thread(Thread*)+0x911 (threadService.cpp:1281)
      V [libjvm.so+0xf955f7] HandshakeOperation::do_handshake(JavaThread*)+0x47 (handshake.cpp:331)
      V [libjvm.so+0xf95bd7] HandshakeState::try_process(HandshakeOperation*) [clone .part.0]+0xc7 (handshake.cpp:686)
      V [libjvm.so+0xf962e7] Handshake::execute(HandshakeClosure*, ThreadsListHandle*, JavaThread*)+0x467 (handshake.cpp:397)
      V [libjvm.so+0x1b408ee] ThreadSnapshotFactory::get_thread_snapshot(_jobject*, JavaThread*)+0x4de (threadService.cpp:1492)
      V [libjvm.so+0x12385b7] JVM_CreateThreadSnapshot+0x97 (jvm.cpp:2966)
      J 8808 jdk.internal.vm.ThreadSnapshot.create(Ljava/lang/Thread;)Ljdk/internal/vm/ThreadSnapshot; java.base@26-ea (0 bytes) @ 0x00007f57491087a7 [0x00007f5749108700+0x00000000000000a7]
      J 8853 c2 jdk.internal.vm.ThreadSnapshot.of(Ljava/lang/Thread;)Ljdk/internal/vm/ThreadSnapshot; java.base@26-ea (92 bytes) @ 0x00007f5749118620 [0x00007f5749118600+0x0000000000000020]
      J 9919 c2 jdk.internal.vm.ThreadDumper.dumpThread(Ljava/lang/Thread;Ljdk/internal/vm/ThreadDumper$JsonWriter;)Z java.base@26-ea (410 bytes) @ 0x00007f574923f340 [0x00007f574923f300+0x0000000000000040]
      J 9924 c2 jdk.internal.vm.ThreadDumper.dumpThreads(Ljdk/internal/vm/ThreadContainer;Ljdk/internal/vm/ThreadDumper$JsonWriter;)V java.base@26-ea (158 bytes) @ 0x00007f574924c870 [0x00007f574924c600+0x0000000000000270]
      J 9922 c2 jdk.internal.vm.ThreadDumper.lambda$dumpThreads$2(Ljdk/internal/vm/ThreadDumper$JsonWriter;Ljdk/internal/vm/ThreadContainer;)V java.base@26-ea (6 bytes) @ 0x00007f574924b4a8 [0x00007f574924b480+0x0000000000000028]

      This assertion failure happened in a JVM_CreateThreadSnapshot call
      which involved handshaking code and a java_lang_Thread::get_thread_status
      call which appears to have run into a bad oop. I'm starting this issue off
      in hotspot/runtime for initial triage.

            dholmes David Holmes
            dcubed Daniel Daugherty
            Votes:
            0 Vote for this issue
            Watchers:
            5 Start watching this issue

              Created:
              Updated: