-
Type:
Bug
-
Resolution: Unresolved
-
Priority:
P4
-
Affects Version/s: 17
-
Component/s: hotspot
VM asserts with assert(heap != nullptr) failed: heap is null when running compiler/codecache/jmx/InitialAndMaxUsageTest.java with -XX:+NeverActAsServerClassMachine
I see the test uses WhiteBox. Looks somewhat similar toJDK-8369147 but with -XX:+NeverActAsServerClassMachine (flag scheduled for removal). I'll file the bug regardless.
===
src/hotspot/share/code/codeCache.cpp:507), pid=688586, tid=688606
# assert(heap != nullptr) failed: heap is null
#
# JRE version: Java(TM) SE Runtime Environment (27.0) (fastdebug
# Problematic frame:
# V [libjvm.so+0xb5ac29] CodeCache::allocate(unsigned int, CodeBlobType, bool, CodeBlobType)+0x359
#
===
Stack: [0x00007f110d221000,0x00007f110d321000], sp=0x00007f110d31f070, free space=1016k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
V [libjvm.so+0xb5ac29] CodeCache::allocate(unsigned int, CodeBlobType, bool, CodeBlobType)+0x359 (codeCache.cpp:507)
V [libjvm.so+0x1d195f7] WhiteBox::allocate_code_blob(int, CodeBlobType)+0x67 (whitebox.cpp:1708)
V [libjvm.so+0x1d23787] WB_AllocateCodeBlob+0x127 (whitebox.cpp:1723)
j jdk.test.whitebox.WhiteBox.allocateCodeBlob(II)J+0
j compiler.codecache.jmx.CodeCacheUtils.getHeaderSize(Ljdk/test/whitebox/code/BlobType;)J+8
j compiler.codecache.jmx.InitialAndMaxUsageTest.runTest()V+4
j compiler.codecache.jmx.InitialAndMaxUsageTest.main([Ljava/lang/String;)V+34
j java.lang.invoke.LambdaForm$DMH+0x0000000083042000.invokeStatic(Ljava/lang/Object;Ljava/lang/Object;)V+10 java.base@27-internal
j java.lang.invoke.LambdaForm$MH+0x0000000083043400.invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;+33 java.base@27-internal
j java.lang.invoke.Invokers$Holder.invokeExact_MT(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;+20 java.base@27-internal
j jdk.internal.reflect.DirectMethodHandleAccessor.invokeImpl(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;+55 java.base@27-internal
j jdk.internal.reflect.DirectMethodHandleAccessor.invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;+23 java.base@27-internal
j java.lang.reflect.Method.invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;+102 java.base@27-internal
j com.sun.javatest.regtest.agent.MainWrapper$MainTask.run()V+134
j java.lang.Thread.runWith(Ljava/lang/Object;Ljava/lang/Runnable;)V+5 java.base@27-internal
j java.lang.Thread.run()V+19 java.base@27-internal
v ~StubRoutines::call_stub_stub (stub gen) 0x00007f10fd2005fd
V [libjvm.so+0x10eedce] JavaCalls::call_helper(JavaValue*, methodHandle const&, JavaCallArguments*, JavaThread*)+0x50e (javaCalls.cpp:416)
V [libjvm.so+0x10ef513] JavaCalls::call_virtual(JavaValue*, Klass*, Symbol*, Symbol*, JavaCallArguments*, JavaThread*)+0x313 (javaCalls.cpp:324)
V [libjvm.so+0x10efb53] JavaCalls::call_virtual(JavaValue*, Handle, Klass*, Symbol*, Symbol*, JavaThread*)+0xb3 (javaCalls.cpp:186)
V [libjvm.so+0x12ac353] thread_entry(JavaThread*, JavaThread*)+0xe3 (jvm.cpp:2701)
V [libjvm.so+0x112dffb] JavaThread::thread_main_inner()+0x13b (javaThread.cpp:776)
V [libjvm.so+0x1bbc436] Thread::call_run()+0xb6 (thread.cpp:243)
V [libjvm.so+0x1811bb8] thread_native_entry(Thread*)+0x118 (os_linux.cpp:929)
Java frames: (J=compiled Java code, j=interpreted, Vv=VM code)
j jdk.test.whitebox.WhiteBox.allocateCodeBlob(II)J+0
j compiler.codecache.jmx.CodeCacheUtils.getHeaderSize(Ljdk/test/whitebox/code/BlobType;)J+8
j compiler.codecache.jmx.InitialAndMaxUsageTest.runTest()V+4
j compiler.codecache.jmx.InitialAndMaxUsageTest.main([Ljava/lang/String;)V+34
j java.lang.invoke.LambdaForm$DMH+0x0000000083042000.invokeStatic(Ljava/lang/Object;Ljava/lang/Object;)V+10 java.base@27-internal
j java.lang.invoke.LambdaForm$MH+0x0000000083043400.invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;+33 java.base@27-internal
j java.lang.invoke.Invokers$Holder.invokeExact_MT(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;+20 java.base@27-internal
j jdk.internal.reflect.DirectMethodHandleAccessor.invokeImpl(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;+55 java.base@27-internal
j jdk.internal.reflect.DirectMethodHandleAccessor.invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;+23 java.base@27-internal
j java.lang.reflect.Method.invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;+102 java.base@27-internal
j com.sun.javatest.regtest.agent.MainWrapper$MainTask.run()V+134
j java.lang.Thread.runWith(Ljava/lang/Object;Ljava/lang/Runnable;)V+5 java.base@27-internal
j java.lang.Thread.run()V+19 java.base@27-internal
v ~StubRoutines::call_stub_stub (stub gen) 0x00007f10fd2005fd
I see the test uses WhiteBox. Looks somewhat similar to
===
src/hotspot/share/code/codeCache.cpp:507), pid=688586, tid=688606
# assert(heap != nullptr) failed: heap is null
#
# JRE version: Java(TM) SE Runtime Environment (27.0) (fastdebug
# Problematic frame:
# V [libjvm.so+0xb5ac29] CodeCache::allocate(unsigned int, CodeBlobType, bool, CodeBlobType)+0x359
#
===
Stack: [0x00007f110d221000,0x00007f110d321000], sp=0x00007f110d31f070, free space=1016k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
V [libjvm.so+0xb5ac29] CodeCache::allocate(unsigned int, CodeBlobType, bool, CodeBlobType)+0x359 (codeCache.cpp:507)
V [libjvm.so+0x1d195f7] WhiteBox::allocate_code_blob(int, CodeBlobType)+0x67 (whitebox.cpp:1708)
V [libjvm.so+0x1d23787] WB_AllocateCodeBlob+0x127 (whitebox.cpp:1723)
j jdk.test.whitebox.WhiteBox.allocateCodeBlob(II)J+0
j compiler.codecache.jmx.CodeCacheUtils.getHeaderSize(Ljdk/test/whitebox/code/BlobType;)J+8
j compiler.codecache.jmx.InitialAndMaxUsageTest.runTest()V+4
j compiler.codecache.jmx.InitialAndMaxUsageTest.main([Ljava/lang/String;)V+34
j java.lang.invoke.LambdaForm$DMH+0x0000000083042000.invokeStatic(Ljava/lang/Object;Ljava/lang/Object;)V+10 java.base@27-internal
j java.lang.invoke.LambdaForm$MH+0x0000000083043400.invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;+33 java.base@27-internal
j java.lang.invoke.Invokers$Holder.invokeExact_MT(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;+20 java.base@27-internal
j jdk.internal.reflect.DirectMethodHandleAccessor.invokeImpl(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;+55 java.base@27-internal
j jdk.internal.reflect.DirectMethodHandleAccessor.invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;+23 java.base@27-internal
j java.lang.reflect.Method.invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;+102 java.base@27-internal
j com.sun.javatest.regtest.agent.MainWrapper$MainTask.run()V+134
j java.lang.Thread.runWith(Ljava/lang/Object;Ljava/lang/Runnable;)V+5 java.base@27-internal
j java.lang.Thread.run()V+19 java.base@27-internal
v ~StubRoutines::call_stub_stub (stub gen) 0x00007f10fd2005fd
V [libjvm.so+0x10eedce] JavaCalls::call_helper(JavaValue*, methodHandle const&, JavaCallArguments*, JavaThread*)+0x50e (javaCalls.cpp:416)
V [libjvm.so+0x10ef513] JavaCalls::call_virtual(JavaValue*, Klass*, Symbol*, Symbol*, JavaCallArguments*, JavaThread*)+0x313 (javaCalls.cpp:324)
V [libjvm.so+0x10efb53] JavaCalls::call_virtual(JavaValue*, Handle, Klass*, Symbol*, Symbol*, JavaThread*)+0xb3 (javaCalls.cpp:186)
V [libjvm.so+0x12ac353] thread_entry(JavaThread*, JavaThread*)+0xe3 (jvm.cpp:2701)
V [libjvm.so+0x112dffb] JavaThread::thread_main_inner()+0x13b (javaThread.cpp:776)
V [libjvm.so+0x1bbc436] Thread::call_run()+0xb6 (thread.cpp:243)
V [libjvm.so+0x1811bb8] thread_native_entry(Thread*)+0x118 (os_linux.cpp:929)
Java frames: (J=compiled Java code, j=interpreted, Vv=VM code)
j jdk.test.whitebox.WhiteBox.allocateCodeBlob(II)J+0
j compiler.codecache.jmx.CodeCacheUtils.getHeaderSize(Ljdk/test/whitebox/code/BlobType;)J+8
j compiler.codecache.jmx.InitialAndMaxUsageTest.runTest()V+4
j compiler.codecache.jmx.InitialAndMaxUsageTest.main([Ljava/lang/String;)V+34
j java.lang.invoke.LambdaForm$DMH+0x0000000083042000.invokeStatic(Ljava/lang/Object;Ljava/lang/Object;)V+10 java.base@27-internal
j java.lang.invoke.LambdaForm$MH+0x0000000083043400.invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;+33 java.base@27-internal
j java.lang.invoke.Invokers$Holder.invokeExact_MT(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;+20 java.base@27-internal
j jdk.internal.reflect.DirectMethodHandleAccessor.invokeImpl(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;+55 java.base@27-internal
j jdk.internal.reflect.DirectMethodHandleAccessor.invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;+23 java.base@27-internal
j java.lang.reflect.Method.invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;+102 java.base@27-internal
j com.sun.javatest.regtest.agent.MainWrapper$MainTask.run()V+134
j java.lang.Thread.runWith(Ljava/lang/Object;Ljava/lang/Runnable;)V+5 java.base@27-internal
j java.lang.Thread.run()V+19 java.base@27-internal
v ~StubRoutines::call_stub_stub (stub gen) 0x00007f10fd2005fd