-
Sub-task
-
Resolution: Fixed
-
P1
-
22
-
b19
Several tests fail with the following assert after JDK-8269393:
# A fatal error has been detected by the Java Runtime Environment:
#
# Internal Error (/workspace/open/src/hotspot/share/runtime/mutex.cpp:447), pid=448464, tid=448487
# assert(false) failed: Attempting to acquire lock CodeCache_lock/nosafepoint-2 out of order with lock Notification_lock/service -- possible deadlock
#
# JRE version: Java(TM) SE Runtime Environment (22.0+19) (fastdebug build 22-ea+19-1433)
# Java VM: Java HotSpot(TM) 64-Bit Server VM (fastdebug 22-ea+19-1433, mixed mode, sharing, tiered, compressed oops, compressed class ptrs, g1 gc, linux-amd64)
# Problematic frame:
# V [libjvm.so+0x1404284] Mutex::check_rank(Thread*)+0x364
Stack: [0x00007f39a36e0000,0x00007f39a37e0000], sp=0x00007f39a37de1d0, free space=1016k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
V [libjvm.so+0x1404284] Mutex::check_rank(Thread*)+0x364 (mutex.cpp:447)
V [libjvm.so+0x14054c0] Mutex::lock_without_safepoint_check()+0x50 (mutex.cpp:145)
V [libjvm.so+0x138f860] CodeHeapPool::get_memory_usage()+0x30 (mutexLocker.hpp:201)
V [libjvm.so+0x12bedd4] LowMemoryDetector::detect_low_memory(MemoryPool*)+0x64 (lowMemoryDetector.cpp:119)
V [libjvm.so+0x133626b] jmm_SetPoolThreshold+0x1ab (management.cpp:734)
C [libmanagement.so+0x24f1] Java_sun_management_MemoryPoolImpl_setUsageThreshold0+0x31 (MemoryPoolImpl.c:76)
j sun.management.MemoryPoolImpl.setUsageThreshold0(JJ)V+0 java.management@22-ea
j sun.management.MemoryPoolImpl.setUsageThreshold(J)V+118 java.management@22-ea
j compiler.codecache.jmx.UsageThresholdNotExceededTest.runTest()V+35
j compiler.codecache.jmx.UsageThresholdNotExceededTest.main([Ljava/lang/String;)V+34
j java.lang.invoke.LambdaForm$DMH+0x00007f3963002000.invokeStatic(Ljava/lang/Object;Ljava/lang/Object;)V+10 java.base@22-ea
j java.lang.invoke.LambdaForm$MH+0x00007f3963003400.invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;+33 java.base@22-ea
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@22-ea
j jdk.internal.reflect.DirectMethodHandleAccessor.invokeImpl(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;+55 java.base@22-ea
j jdk.internal.reflect.DirectMethodHandleAccessor.invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;+23 java.base@22-ea
j java.lang.reflect.Method.invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;+102 java.base@22-ea
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@22-ea
j java.lang.Thread.run()V+19 java.base@22-ea
v ~StubRoutines::call_stub 0x00007f39c4091d21
V [libjvm.so+0xe85807] JavaCalls::call_helper(JavaValue*, methodHandle const&, JavaCallArguments*, JavaThread*)+0x477 (javaCalls.cpp:415)
V [libjvm.so+0xe85e51] JavaCalls::call_virtual(JavaValue*, Klass*, Symbol*, Symbol*, JavaCallArguments*, JavaThread*)+0x331 (javaCalls.cpp:329)
V [libjvm.so+0xe86065] JavaCalls::call_virtual(JavaValue*, Handle, Klass*, Symbol*, Symbol*, JavaThread*)+0x75 (javaCalls.cpp:191)
V [libjvm.so+0xfdf333] thread_entry(JavaThread*, JavaThread*)+0x93 (jvm.cpp:2935)
V [libjvm.so+0xebaecc] JavaThread::thread_main_inner()+0xcc (javaThread.cpp:720)
V [libjvm.so+0x178f31a] Thread::call_run()+0xba (thread.cpp:220)
V [libjvm.so+0x149d9ba] thread_native_entry(Thread*)+0x12a (os_linux.cpp:786)
Java frames: (J=compiled Java code, j=interpreted, Vv=VM code)
j sun.management.MemoryPoolImpl.setUsageThreshold0(JJ)V+0 java.management@22-ea
j sun.management.MemoryPoolImpl.setUsageThreshold(J)V+118 java.management@22-ea
j compiler.codecache.jmx.UsageThresholdNotExceededTest.runTest()V+35
j compiler.codecache.jmx.UsageThresholdNotExceededTest.main([Ljava/lang/String;)V+34
j java.lang.invoke.LambdaForm$DMH+0x00007f3963002000.invokeStatic(Ljava/lang/Object;Ljava/lang/Object;)V+10 java.base@22-ea
j java.lang.invoke.LambdaForm$MH+0x00007f3963003400.invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;+33 java.base@22-ea
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@22-ea
j jdk.internal.reflect.DirectMethodHandleAccessor.invokeImpl(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;+55 java.base@22-ea
j jdk.internal.reflect.DirectMethodHandleAccessor.invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;+23 java.base@22-ea
j java.lang.reflect.Method.invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;+102 java.base@22-ea
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@22-ea
j java.lang.Thread.run()V+19 java.base@22-ea
v ~StubRoutines::call_stub 0x00007f39c4091d21
# A fatal error has been detected by the Java Runtime Environment:
#
# Internal Error (/workspace/open/src/hotspot/share/runtime/mutex.cpp:447), pid=448464, tid=448487
# assert(false) failed: Attempting to acquire lock CodeCache_lock/nosafepoint-2 out of order with lock Notification_lock/service -- possible deadlock
#
# JRE version: Java(TM) SE Runtime Environment (22.0+19) (fastdebug build 22-ea+19-1433)
# Java VM: Java HotSpot(TM) 64-Bit Server VM (fastdebug 22-ea+19-1433, mixed mode, sharing, tiered, compressed oops, compressed class ptrs, g1 gc, linux-amd64)
# Problematic frame:
# V [libjvm.so+0x1404284] Mutex::check_rank(Thread*)+0x364
Stack: [0x00007f39a36e0000,0x00007f39a37e0000], sp=0x00007f39a37de1d0, free space=1016k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
V [libjvm.so+0x1404284] Mutex::check_rank(Thread*)+0x364 (mutex.cpp:447)
V [libjvm.so+0x14054c0] Mutex::lock_without_safepoint_check()+0x50 (mutex.cpp:145)
V [libjvm.so+0x138f860] CodeHeapPool::get_memory_usage()+0x30 (mutexLocker.hpp:201)
V [libjvm.so+0x12bedd4] LowMemoryDetector::detect_low_memory(MemoryPool*)+0x64 (lowMemoryDetector.cpp:119)
V [libjvm.so+0x133626b] jmm_SetPoolThreshold+0x1ab (management.cpp:734)
C [libmanagement.so+0x24f1] Java_sun_management_MemoryPoolImpl_setUsageThreshold0+0x31 (MemoryPoolImpl.c:76)
j sun.management.MemoryPoolImpl.setUsageThreshold0(JJ)V+0 java.management@22-ea
j sun.management.MemoryPoolImpl.setUsageThreshold(J)V+118 java.management@22-ea
j compiler.codecache.jmx.UsageThresholdNotExceededTest.runTest()V+35
j compiler.codecache.jmx.UsageThresholdNotExceededTest.main([Ljava/lang/String;)V+34
j java.lang.invoke.LambdaForm$DMH+0x00007f3963002000.invokeStatic(Ljava/lang/Object;Ljava/lang/Object;)V+10 java.base@22-ea
j java.lang.invoke.LambdaForm$MH+0x00007f3963003400.invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;+33 java.base@22-ea
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@22-ea
j jdk.internal.reflect.DirectMethodHandleAccessor.invokeImpl(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;+55 java.base@22-ea
j jdk.internal.reflect.DirectMethodHandleAccessor.invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;+23 java.base@22-ea
j java.lang.reflect.Method.invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;+102 java.base@22-ea
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@22-ea
j java.lang.Thread.run()V+19 java.base@22-ea
v ~StubRoutines::call_stub 0x00007f39c4091d21
V [libjvm.so+0xe85807] JavaCalls::call_helper(JavaValue*, methodHandle const&, JavaCallArguments*, JavaThread*)+0x477 (javaCalls.cpp:415)
V [libjvm.so+0xe85e51] JavaCalls::call_virtual(JavaValue*, Klass*, Symbol*, Symbol*, JavaCallArguments*, JavaThread*)+0x331 (javaCalls.cpp:329)
V [libjvm.so+0xe86065] JavaCalls::call_virtual(JavaValue*, Handle, Klass*, Symbol*, Symbol*, JavaThread*)+0x75 (javaCalls.cpp:191)
V [libjvm.so+0xfdf333] thread_entry(JavaThread*, JavaThread*)+0x93 (jvm.cpp:2935)
V [libjvm.so+0xebaecc] JavaThread::thread_main_inner()+0xcc (javaThread.cpp:720)
V [libjvm.so+0x178f31a] Thread::call_run()+0xba (thread.cpp:220)
V [libjvm.so+0x149d9ba] thread_native_entry(Thread*)+0x12a (os_linux.cpp:786)
Java frames: (J=compiled Java code, j=interpreted, Vv=VM code)
j sun.management.MemoryPoolImpl.setUsageThreshold0(JJ)V+0 java.management@22-ea
j sun.management.MemoryPoolImpl.setUsageThreshold(J)V+118 java.management@22-ea
j compiler.codecache.jmx.UsageThresholdNotExceededTest.runTest()V+35
j compiler.codecache.jmx.UsageThresholdNotExceededTest.main([Ljava/lang/String;)V+34
j java.lang.invoke.LambdaForm$DMH+0x00007f3963002000.invokeStatic(Ljava/lang/Object;Ljava/lang/Object;)V+10 java.base@22-ea
j java.lang.invoke.LambdaForm$MH+0x00007f3963003400.invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;+33 java.base@22-ea
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@22-ea
j jdk.internal.reflect.DirectMethodHandleAccessor.invokeImpl(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;+55 java.base@22-ea
j jdk.internal.reflect.DirectMethodHandleAccessor.invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;+23 java.base@22-ea
j java.lang.reflect.Method.invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;+102 java.base@22-ea
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@22-ea
j java.lang.Thread.run()V+19 java.base@22-ea
v ~StubRoutines::call_stub 0x00007f39c4091d21
- relates to
-
JDK-8269393 store/load order not preserved when handling memory pool due to weakly ordered memory architecture of aarch64
-
- Closed
-