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

Kitchensink failed: assert(!thread->is_in_any_VTMS_transition()) failed: class prepare events are not allowed in any VTMS transition

XMLWordPrintable

    • b16
    • x86_64
    • windows

      The following test failed in the JDK21 CI:

      applications/kitchensink/Kitchensink.java

      Here's a snippet from the log file:

      ----------System.out:(42/3899)*----------
      C:\\ade\\mesos\\work_dir\\jib-master\\install\\jdk-21+15-1199\\src.full\\closed\\test\\hotspot\\jtreg\\applications\\kitchensink\\applications\\kitchensink\\resources\\kitchensink.default.properties
      C:\\ade\\mesos\\work_dir\\jib-master\\install\\jdk-21+15-1199\\src.full\\closed\\test\\hotspot\\jtreg\\applications\\kitchensink\\resources\\kitchensink.default.properties
      C:\\ade\\mesos\\work_dir\\jib-master\\install\\jdk-21+15-1199\\src.full\\closed\\test\\hotspot\\jtreg\\applications\\kitchensink\\applications\\kitchensink\\resources\\kitchensink.default.properties
      C:\\ade\\mesos\\work_dir\\jib-master\\install\\jdk-21+15-1199\\src.full\\closed\\test\\hotspot\\jtreg\\applications\\kitchensink\\resources\\kitchensink.default.properties
      [stress.process.out] For random generator using seed: 8396202546159738354
      [stress.process.out] To re-run test with same seed value please add "-Djdk.test.lib.random.seed=8396202546159738354" to command line.
      [stress.process.out] Stress process main method is started.
      [stress.process.out] #
      [stress.process.out] # A fatal error has been detected by the Java Runtime Environment:
      [stress.process.out] #
      [stress.process.out] # Internal Error (c:\\sb\\prod\\1679159541\\workspace\\open\\src\\hotspot\\share\\prims\\jvmtiExport.cpp:1374), pid=73168, tid=44832
      [stress.process.out] # assert(!thread->is_in_any_VTMS_transition()) failed: class prepare events are not allowed in any VTMS transition
      [stress.process.out] #
      [stress.process.out] # JRE version: Java(TM) SE Runtime Environment (21.0+15) (fastdebug build 21-ea+15-LTS-1199)
      [stress.process.out] # Java VM: Java HotSpot(TM) 64-Bit Server VM (fastdebug 21-ea+15-LTS-1199, mixed mode, sharing, tiered, compressed class ptrs, z gc, windows-amd64)
      [stress.process.out] # Core dump will be written. Default location: C:\\sb\\prod\\1679166106\\testoutput\\test-support\\jtreg_closed_test_hotspot_jtreg_applications_kitchensink_Kitchensink_java\\scratch\\0\\hs_err_pid73168.mdmp
      [stress.process.out] #
      [stress.process.out] Unsupported internal testing APIs have been used.
      [stress.process.out]
      [stress.process.out] # An error report file with more information is saved as:
      [stress.process.out] # C:\\sb\\prod\\1679166106\\testoutput\\test-support\\jtreg_closed_test_hotspot_jtreg_applications_kitchensink_Kitchensink_java\\scratch\\0\\hs_err_pid73168.log
      [stress.process.out] [3.038s][warning][os] Loading hsdis library failed
      [stress.process.out] #
      [stress.process.out] # If you would like to submit a bug report, please visit:
      [stress.process.out] # https://bugreport.java.com/bugreport/crash.jsp
      [stress.process.out] #
      [2023-03-18T19:03:12.055455Z] Gathering output for process 42156

      Here's the crashing thread's stack:

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

      Current thread (0x0000016b6a843150): JavaThread "ForkJoinPool-1-worker-1" daemon [_thread_in_vm, id=44832, stack(0x00000035d6900000,0x00000035d6a00000)]

      Stack: [0x00000035d6900000,0x00000035d6a00000]
      Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
      V [jvm.dll+0xbf2eb1] os::win32::platform_print_native_stack+0xf1 (os_windows_x86.cpp:236)
      V [jvm.dll+0xe6dd20] VMError::report+0x10c0 (vmError.cpp:814)
      V [jvm.dll+0xe6f8d5] VMError::report_and_die+0x645 (vmError.cpp:1587)
      V [jvm.dll+0xe6ffe4] VMError::report_and_die+0x64 (vmError.cpp:1352)
      V [jvm.dll+0x577e39] report_vm_error+0x79 (debug.cpp:181)
      V [jvm.dll+0x9e3843] JvmtiExport::post_class_prepare+0x93 (jvmtiExport.cpp:1374)
      V [jvm.dll+0x791d3a] InstanceKlass::link_class_impl+0x6ba (instanceKlass.cpp:930)
      V [jvm.dll+0x78fb57] InstanceKlass::initialize_impl+0x97 (instanceKlass.cpp:1033)
      V [jvm.dll+0x7ae1d3] InterpreterRuntime::_new+0x203 (interpreterRuntime.cpp:227)
      V [jvm.dll+0x78fb57] InstanceKlass::initialize_impl+0x97 (instanceKlass.cpp:1033)
      V [jvm.dll+0x7ae1d3] InterpreterRuntime::_new+0x203 (interpreterRuntime.cpp:227)
      C 0x000001695b41820c

      Unclear if the native stack indicates we are jumping from compiled code, but it is evidently truncated. Here's the Java stack

      Java frames: (J=compiled Java code, j=interpreted, Vv=VM code)
      j java.util.concurrent.ConcurrentHashMap.fullAddCount(JZ)V+384 java.base@21-ea
      J 725 c1 java.util.concurrent.ConcurrentHashMap.addCount(JI)V java.base@21-ea (280 bytes) @ 0x0000016953feddd4 [0x0000016953fed4c0+0x0000000000000914]
      J 690 c1 java.util.concurrent.ConcurrentHashMap.putVal(Ljava/lang/Object;Ljava/lang/Object;Z)Ljava/lang/Object; java.base@21-ea (432 bytes) @ 0x0000016953fe9744 [0x0000016953fe82a0+0x00000000000014a4]
      J 41 c1 java.util.concurrent.ConcurrentHashMap.putIfAbsent(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; java.base@21-ea (8 bytes) @ 0x0000016953eb7564 [0x0000016953eb74c0+0x00000000000000a4]
      J 574 c1 java.lang.invoke.MethodType$ConcurrentWeakInternSet.add(Ljava/lang/Object;)Ljava/lang/Object; java.base@21-ea (66 bytes) @ 0x0000016953fb6ae4 [0x0000016953fb6460+0x0000000000000684]
      J 317 c1 java.lang.invoke.MethodType.makeImpl(Ljava/lang/Class;[Ljava/lang/Class;Z)Ljava/lang/invoke/MethodType; java.base@21-ea (109 bytes) @ 0x0000016953f23614 [0x0000016953f22da0+0x0000000000000874]
      J 639 c1 java.lang.invoke.MethodType.insertParameterTypes(I[Ljava/lang/Class;)Ljava/lang/invoke/MethodType; java.base@21-ea (121 bytes) @ 0x0000016953fd34a4 [0x0000016953fd2d20+0x0000000000000784]
      j java.lang.invoke.VarHandle$AccessDescriptor.<init>(Ljava/lang/invoke/MethodType;II)V+29 java.base@21-ea
      j java.lang.invoke.MethodHandleNatives.varHandleOperationLinkerMethod(Ljava/lang/String;Ljava/lang/invoke/MethodType;[Ljava/lang/Object;)Ljava/lang/invoke/MemberName;+40 java.base@21-ea
      j java.lang.invoke.MethodHandleNatives.linkMethodImpl(Ljava/lang/Class;ILjava/lang/Class;Ljava/lang/String;Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/invoke/MemberName;+40 java.base@21-ea
      j java.lang.invoke.MethodHandleNatives.linkMethod(Ljava/lang/Class;ILjava/lang/Class;Ljava/lang/String;Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/invoke/MemberName;+14 java.base@21-ea
      v ~StubRoutines::call_stub 0x000001695b3d106f
      j jdk.internal.vm.Continuation.compareAndSetMounted(ZZ)Z+6 java.base@21-ea
      j jdk.internal.vm.Continuation.mount()V+3 java.base@21-ea
      j jdk.internal.vm.Continuation.run()V+1 java.base@21-ea
      j java.lang.VirtualThread.runContinuation()V+81 java.base@21-ea
      j java.lang.VirtualThread$$Lambda+0x00000008010d5b48.run()V+4 java.base@21-ea
      j java.util.concurrent.ForkJoinTask$RunnableExecuteAction.exec()Z+4 java.base@21-ea
      j java.util.concurrent.ForkJoinTask.doExec()I+10 java.base@21-ea
      j java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(Ljava/util/concurrent/ForkJoinTask;Ljava/util/concurrent/ForkJoinPool$WorkQueue;)V+19 java.base@21-ea
      j java.util.concurrent.ForkJoinPool.scan(Ljava/util/concurrent/ForkJoinPool$WorkQueue;II)I+211 java.base@21-ea
      j java.util.concurrent.ForkJoinPool.runWorker(Ljava/util/concurrent/ForkJoinPool$WorkQueue;)V+35 java.base@21-ea
      j java.util.concurrent.ForkJoinWorkerThread.run()V+31 java.base@21-ea
      v ~StubRoutines::call_stub 0x000001695b3d106f

            sspitsyn Serguei Spitsyn
            dcubed Daniel Daugherty
            Votes:
            0 Vote for this issue
            Watchers:
            6 Start watching this issue

              Created:
              Updated:
              Resolved: