# Internal Error (/home/rehn/source/jdk/jdk25u/src/hotspot/share/runtime/mutex.cpp:460), pid=846, tid=847
# assert(false) failed: Attempting to acquire lock FullGCALot_lock/safepoint out of order with lock ThreadsLockThrottle_lock/safepoint -- possible deadlock
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
V [libjvm.so+0x11235d0] Mutex::check_rank(Thread*)+0x4a6 (mutex.cpp:460)
V [libjvm.so+0x11236f0] Mutex::lock(Thread*)+0x38 (mutex.cpp:120)
V [libjvm.so+0x1628d2e] Universe::release_fullgc_alot_dummy()+0x28 (mutexLocker.hpp:203)
V [libjvm.so+0xba609a] InterfaceSupport::gc_alot()+0x1e6 (interfaceSupport.cpp:106)
V [libjvm.so+0x11236e8] Mutex::lock(Thread*)+0x30 (mutex.cpp:119)
V [libjvm.so+0xd7502c] JVM_StartThread+0xb2 (mutexLocker.hpp:203)
j java.lang.Thread.start0()V+0 java.base@25.0.2-202511040836debugmods7bb9be9f6ec
j java.lang.Thread.start()V+23 java.base@25.0.2-202511040836debugmods7bb9be9f6ec
j jdk.internal.ref.CleanerImpl.start(Ljava/lang/ref/Cleaner;Ljava/util/concurrent/ThreadFactory;)V+49 java.base@25.0.2-202511040836debugmods7bb9be9f6ec
j java.lang.ref.Cleaner.create(Ljava/util/concurrent/ThreadFactory;)Ljava/lang/ref/Cleaner;+21 java.base@25.0.2-202511040836debugmods7bb9be9f6ec
j jdk.internal.ref.CleanerFactory.<clinit>()V+7 java.base@25.0.2-202511040836debugmods7bb9be9f6ec
v ~StubRoutines::call_stub 0x00007fff8f3377ae
V [libjvm.so+0xbda242] JavaCalls::call_helper(JavaValue*, methodHandle const&, JavaCallArguments*, JavaThread*)+0x3da (javaCalls.cpp:415)
V [libjvm.so+0xb862e2] InstanceKlass::call_class_initializer(JavaThread*)+0x260 (instanceKlass.cpp:1707)
V [libjvm.so+0xb8baf2] InstanceKlass::initialize_impl(JavaThread*)+0x7b6 (instanceKlass.cpp:1315)
V [libjvm.so+0xb8bf98] InstanceKlass::initialize(JavaThread*)+0x64 (instanceKlass.cpp:813)
V [libjvm.so+0xf98232] LinkResolver::resolve_static_call(CallInfo&, LinkInfo const&, bool, JavaThread*)+0xca (linkResolver.cpp:1115)
V [libjvm.so+0xf985b0] LinkResolver::resolve_invokestatic(CallInfo&, constantPoolHandle const&, int, JavaThread*)+0x1ce (linkResolver.cpp:1744)
V [libjvm.so+0xf9bdb6] LinkResolver::resolve_invoke(CallInfo&, Handle, constantPoolHandle const&, int, Bytecodes::Code, JavaThread*)+0xd8 (linkResolver.cpp:1703)
V [libjvm.so+0xbc2a90] InterpreterRuntime::resolve_invoke(JavaThread*, Bytecodes::Code)+0x1e6 (interpreterRuntime.cpp:822)
V [libjvm.so+0xbc315a] InterpreterRuntime::resolve_from_cache(JavaThread*, Bytecodes::Code)+0x86 (interpreterRuntime.cpp:1001)
j java.util.zip.ZipFile$CleanableResource.<init>(Ljava/util/zip/ZipFile;Ljava/util/zip/ZipCoder;Ljava/io/File;I)V+25 java.base@25.0.2-202511040836debugmods7bb9be9f6ec
j java.util.zip.ZipFile.<init>(Ljava/io/File;ILjava/nio/charset/Charset;)V+109 java.base@25.0.2-202511040836debugmods7bb9be9f6ec
j java.util.zip.ZipFile.<init>(Ljava/io/File;I)V+6 java.base@25.0.2-202511040836debugmods7bb9be9f6ec
j java.util.jar.JarFile.<init>(Ljava/io/File;ZILjava/lang/Runtime$Version;)V+3 java.base@25.0.2-202511040836debugmods7bb9be9f6ec
j java.util.jar.JarFile.<init>(Ljava/io/File;ZI)V+7 java.base@25.0.2-202511040836debugmods7bb9be9f6ec
j java.util.jar.JarFile.<init>(Ljava/lang/String;)V+11 java.base@25.0.2-202511040836debugmods7bb9be9f6ec
j sun.launcher.LauncherHelper.loadMainClass(ILjava/lang/String;)Ljava/lang/Class;+42 java.base@25.0.2-202511040836debugmods7bb9be9f6ec
j sun.launcher.LauncherHelper.checkAndLoadMain(ZILjava/lang/String;)Ljava/lang/Class;+42 java.base@25.0.2-202511040836debugmods7bb9be9f6ec
v ~StubRoutines::call_stub 0x00007fff8f3377ae
V [libjvm.so+0xbda242] JavaCalls::call_helper(JavaValue*, methodHandle const&, JavaCallArguments*, JavaThread*)+0x3da (javaCalls.cpp:415)
V [libjvm.so+0xd2e3b4] jni_invoke_static(JNIEnv_*, JavaValue*, _jobject*, JNICallType, _jmethodID*, JNI_ArgumentPusher*, JavaThread*) [clone .constprop.1]+0x202 (jni.cpp:883)
V [libjvm.so+0xd2f354] jni_CallStaticObjectMethod+0x160 (jni.cpp:1572)
C [libjli.so+0x3ac4] JavaMain+0x524 (java.c:1601)
C [libjli.so+0x6642] ThreadJavaMain+0xc (java_md.c:646)
C [libc.so.6+0x6e67a]
##################################################################
Using -XX:-UseThreadsLockThrottleLock we hit similar issue here with MethodCompileQueue_lock:
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
V [libjvm.so+0x11235d0] Mutex::check_rank(Thread*)+0x4a6 (mutex.cpp:460)
V [libjvm.so+0x11236f0] Mutex::lock(Thread*)+0x38 (mutex.cpp:120)
V [libjvm.so+0x1628d2e] Universe::release_fullgc_alot_dummy()+0x28 (mutexLocker.hpp:203)
V [libjvm.so+0xba609a] InterfaceSupport::gc_alot()+0x1e6 (interfaceSupport.cpp:106)
V [libjvm.so+0x11236e8] Mutex::lock(Thread*)+0x30 (mutex.cpp:119)
V [libjvm.so+0x7a6f24] CompileTask::allocate()+0x20 (mutexLocker.hpp:203)
V [libjvm.so+0x7a2cac] CompileBroker::compile_method_base(methodHandle const&, int, int, int, CompileTask::CompileReason, bool, Thread*)+0x4fc (compileBroker.cpp:1630)
V [libjvm.so+0x7a335a] CompileBroker::compile_method(methodHandle const&, int, int, int, CompileTask::CompileReason, DirectiveSet*, JavaThread*)+0x452 (compileBroker.cpp:1480)
V [libjvm.so+0x7a376c] CompileBroker::compile_method(methodHandle const&, int, int, int, CompileTask::CompileReason, JavaThread*)+0x86 (compileBroker.cpp:1377)
V [libjvm.so+0x773668] CompilationPolicy::event(methodHandle const&, methodHandle const&, int, int, CompLevel, nmethod*, JavaThread*)+0x2b0 (compilationPolicy.cpp:871)
V [libjvm.so+0xbc0ef4] InterpreterRuntime::frequency_counter_overflow_inner(JavaThread*, unsigned char*)+0x180 (interpreterRuntime.cpp:1076)
V [libjvm.so+0xbc1044] InterpreterRuntime::frequency_counter_overflow(JavaThread*, unsigned char*)+0x14 (interpreterRuntime.cpp:1025)
j jdk.internal.util.Preconditions.checkIndex(IILjava/util/function/BiFunction;)I+0 java.base@25.0.2-202511040836debugmods7bb9be9f6ec
I have not checked mainline.
# assert(false) failed: Attempting to acquire lock FullGCALot_lock/safepoint out of order with lock ThreadsLockThrottle_lock/safepoint -- possible deadlock
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
V [libjvm.so+0x11235d0] Mutex::check_rank(Thread*)+0x4a6 (mutex.cpp:460)
V [libjvm.so+0x11236f0] Mutex::lock(Thread*)+0x38 (mutex.cpp:120)
V [libjvm.so+0x1628d2e] Universe::release_fullgc_alot_dummy()+0x28 (mutexLocker.hpp:203)
V [libjvm.so+0xba609a] InterfaceSupport::gc_alot()+0x1e6 (interfaceSupport.cpp:106)
V [libjvm.so+0x11236e8] Mutex::lock(Thread*)+0x30 (mutex.cpp:119)
V [libjvm.so+0xd7502c] JVM_StartThread+0xb2 (mutexLocker.hpp:203)
j java.lang.Thread.start0()V+0 java.base@25.0.2-202511040836debugmods7bb9be9f6ec
j java.lang.Thread.start()V+23 java.base@25.0.2-202511040836debugmods7bb9be9f6ec
j jdk.internal.ref.CleanerImpl.start(Ljava/lang/ref/Cleaner;Ljava/util/concurrent/ThreadFactory;)V+49 java.base@25.0.2-202511040836debugmods7bb9be9f6ec
j java.lang.ref.Cleaner.create(Ljava/util/concurrent/ThreadFactory;)Ljava/lang/ref/Cleaner;+21 java.base@25.0.2-202511040836debugmods7bb9be9f6ec
j jdk.internal.ref.CleanerFactory.<clinit>()V+7 java.base@25.0.2-202511040836debugmods7bb9be9f6ec
v ~StubRoutines::call_stub 0x00007fff8f3377ae
V [libjvm.so+0xbda242] JavaCalls::call_helper(JavaValue*, methodHandle const&, JavaCallArguments*, JavaThread*)+0x3da (javaCalls.cpp:415)
V [libjvm.so+0xb862e2] InstanceKlass::call_class_initializer(JavaThread*)+0x260 (instanceKlass.cpp:1707)
V [libjvm.so+0xb8baf2] InstanceKlass::initialize_impl(JavaThread*)+0x7b6 (instanceKlass.cpp:1315)
V [libjvm.so+0xb8bf98] InstanceKlass::initialize(JavaThread*)+0x64 (instanceKlass.cpp:813)
V [libjvm.so+0xf98232] LinkResolver::resolve_static_call(CallInfo&, LinkInfo const&, bool, JavaThread*)+0xca (linkResolver.cpp:1115)
V [libjvm.so+0xf985b0] LinkResolver::resolve_invokestatic(CallInfo&, constantPoolHandle const&, int, JavaThread*)+0x1ce (linkResolver.cpp:1744)
V [libjvm.so+0xf9bdb6] LinkResolver::resolve_invoke(CallInfo&, Handle, constantPoolHandle const&, int, Bytecodes::Code, JavaThread*)+0xd8 (linkResolver.cpp:1703)
V [libjvm.so+0xbc2a90] InterpreterRuntime::resolve_invoke(JavaThread*, Bytecodes::Code)+0x1e6 (interpreterRuntime.cpp:822)
V [libjvm.so+0xbc315a] InterpreterRuntime::resolve_from_cache(JavaThread*, Bytecodes::Code)+0x86 (interpreterRuntime.cpp:1001)
j java.util.zip.ZipFile$CleanableResource.<init>(Ljava/util/zip/ZipFile;Ljava/util/zip/ZipCoder;Ljava/io/File;I)V+25 java.base@25.0.2-202511040836debugmods7bb9be9f6ec
j java.util.zip.ZipFile.<init>(Ljava/io/File;ILjava/nio/charset/Charset;)V+109 java.base@25.0.2-202511040836debugmods7bb9be9f6ec
j java.util.zip.ZipFile.<init>(Ljava/io/File;I)V+6 java.base@25.0.2-202511040836debugmods7bb9be9f6ec
j java.util.jar.JarFile.<init>(Ljava/io/File;ZILjava/lang/Runtime$Version;)V+3 java.base@25.0.2-202511040836debugmods7bb9be9f6ec
j java.util.jar.JarFile.<init>(Ljava/io/File;ZI)V+7 java.base@25.0.2-202511040836debugmods7bb9be9f6ec
j java.util.jar.JarFile.<init>(Ljava/lang/String;)V+11 java.base@25.0.2-202511040836debugmods7bb9be9f6ec
j sun.launcher.LauncherHelper.loadMainClass(ILjava/lang/String;)Ljava/lang/Class;+42 java.base@25.0.2-202511040836debugmods7bb9be9f6ec
j sun.launcher.LauncherHelper.checkAndLoadMain(ZILjava/lang/String;)Ljava/lang/Class;+42 java.base@25.0.2-202511040836debugmods7bb9be9f6ec
v ~StubRoutines::call_stub 0x00007fff8f3377ae
V [libjvm.so+0xbda242] JavaCalls::call_helper(JavaValue*, methodHandle const&, JavaCallArguments*, JavaThread*)+0x3da (javaCalls.cpp:415)
V [libjvm.so+0xd2e3b4] jni_invoke_static(JNIEnv_*, JavaValue*, _jobject*, JNICallType, _jmethodID*, JNI_ArgumentPusher*, JavaThread*) [clone .constprop.1]+0x202 (jni.cpp:883)
V [libjvm.so+0xd2f354] jni_CallStaticObjectMethod+0x160 (jni.cpp:1572)
C [libjli.so+0x3ac4] JavaMain+0x524 (java.c:1601)
C [libjli.so+0x6642] ThreadJavaMain+0xc (java_md.c:646)
C [libc.so.6+0x6e67a]
##################################################################
Using -XX:-UseThreadsLockThrottleLock we hit similar issue here with MethodCompileQueue_lock:
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
V [libjvm.so+0x11235d0] Mutex::check_rank(Thread*)+0x4a6 (mutex.cpp:460)
V [libjvm.so+0x11236f0] Mutex::lock(Thread*)+0x38 (mutex.cpp:120)
V [libjvm.so+0x1628d2e] Universe::release_fullgc_alot_dummy()+0x28 (mutexLocker.hpp:203)
V [libjvm.so+0xba609a] InterfaceSupport::gc_alot()+0x1e6 (interfaceSupport.cpp:106)
V [libjvm.so+0x11236e8] Mutex::lock(Thread*)+0x30 (mutex.cpp:119)
V [libjvm.so+0x7a6f24] CompileTask::allocate()+0x20 (mutexLocker.hpp:203)
V [libjvm.so+0x7a2cac] CompileBroker::compile_method_base(methodHandle const&, int, int, int, CompileTask::CompileReason, bool, Thread*)+0x4fc (compileBroker.cpp:1630)
V [libjvm.so+0x7a335a] CompileBroker::compile_method(methodHandle const&, int, int, int, CompileTask::CompileReason, DirectiveSet*, JavaThread*)+0x452 (compileBroker.cpp:1480)
V [libjvm.so+0x7a376c] CompileBroker::compile_method(methodHandle const&, int, int, int, CompileTask::CompileReason, JavaThread*)+0x86 (compileBroker.cpp:1377)
V [libjvm.so+0x773668] CompilationPolicy::event(methodHandle const&, methodHandle const&, int, int, CompLevel, nmethod*, JavaThread*)+0x2b0 (compilationPolicy.cpp:871)
V [libjvm.so+0xbc0ef4] InterpreterRuntime::frequency_counter_overflow_inner(JavaThread*, unsigned char*)+0x180 (interpreterRuntime.cpp:1076)
V [libjvm.so+0xbc1044] InterpreterRuntime::frequency_counter_overflow(JavaThread*, unsigned char*)+0x14 (interpreterRuntime.cpp:1025)
j jdk.internal.util.Preconditions.checkIndex(IILjava/util/function/BiFunction;)I+0 java.base@25.0.2-202511040836debugmods7bb9be9f6ec
I have not checked mainline.