assert(false) failed: "Attempting to acquire lock NativeHeapTrimmer_lock/nosafepoint out of order with lock ConcurrentHashTableResize_lock/nosafepoint-2 -- possible deadlock" when using native heap trimmer
test/hotspot/jtreg/compiler/runtime/Test6892265.java run with -XX:TrimNativeHeapInterval=30000000
===
# A fatal error has been detected by the Java Runtime Environment:
#
# Internal Error ([...]src/hotspot/share/runtime/mutex.cpp:460), pid=484714, tid=484741
# assert(false) failed: Attempting to acquire lock NativeHeapTrimmer_lock/nosafepoint out of order with lock ConcurrentHashTableResize_lock/nosafepoint-2 -- possible deadlock
#
# JRE version: Java(TM) SE Runtime Environment (27.0) (fastdebug build [...])
# Java VM: Java HotSpot(TM) 64-Bit Server VM (fastdebug [...], mixed mode, sharing, tiered, compressed oops, compressed class ptrs, g1 gc, linux-amd64)
# Problematic frame:
# V [libjvm.so+0x174c960] Mutex::check_rank(Thread*)+0x5a0
--------------- T H R E A D ---------------
Current thread (0x00007f61141a3840): JavaThread "Service Thread" daemon [_thread_in_vm, id=484741, stack(0x00007f60ea8ea000,0x00007f60ea9ea000) (1024K)]
Stack: [0x00007f60ea8ea000,0x00007f60ea9ea000], sp=0x00007f60ea9e8ab0, free space=1018k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
V [libjvm.so+0x174c960] Mutex::check_rank(Thread*)+0x5a0 (mutex.cpp:460)
V [libjvm.so+0x174cbfc] Mutex::lock_without_safepoint_check(Thread*)+0x4c (mutex.cpp:146)
V [libjvm.so+0x1bdf91a] NativeHeapTrimmer::suspend_periodic_trim(char const*)+0x5a (mutexLocker.hpp:202)
V [libjvm.so+0x1b3545c] SymbolTable::clean_dead_entries(JavaThread*)+0x75c (trimNativeHeap.hpp:58)
V [libjvm.so+0x1b35875] SymbolTable::do_concurrent_work(JavaThread*)+0xd5 (symbolTable.cpp:823)
V [libjvm.so+0x19b072b] ServiceThread::service_thread_entry(JavaThread*, JavaThread*)+0x4ab (serviceThread.cpp:135)
V [libjvm.so+0x112511b] JavaThread::thread_main_inner()+0x13b (javaThread.cpp:776)
V [libjvm.so+0x1bb14f6] Thread::call_run()+0xb6 (thread.cpp:242)
V [libjvm.so+0x1807098] thread_native_entry(Thread*)+0x118 (os_linux.cpp:860)
test/hotspot/jtreg/compiler/runtime/Test6892265.java run with -XX:TrimNativeHeapInterval=30000000
===
# A fatal error has been detected by the Java Runtime Environment:
#
# Internal Error ([...]src/hotspot/share/runtime/mutex.cpp:460), pid=484714, tid=484741
# assert(false) failed: Attempting to acquire lock NativeHeapTrimmer_lock/nosafepoint out of order with lock ConcurrentHashTableResize_lock/nosafepoint-2 -- possible deadlock
#
# JRE version: Java(TM) SE Runtime Environment (27.0) (fastdebug build [...])
# Java VM: Java HotSpot(TM) 64-Bit Server VM (fastdebug [...], mixed mode, sharing, tiered, compressed oops, compressed class ptrs, g1 gc, linux-amd64)
# Problematic frame:
# V [libjvm.so+0x174c960] Mutex::check_rank(Thread*)+0x5a0
--------------- T H R E A D ---------------
Current thread (0x00007f61141a3840): JavaThread "Service Thread" daemon [_thread_in_vm, id=484741, stack(0x00007f60ea8ea000,0x00007f60ea9ea000) (1024K)]
Stack: [0x00007f60ea8ea000,0x00007f60ea9ea000], sp=0x00007f60ea9e8ab0, free space=1018k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
V [libjvm.so+0x174c960] Mutex::check_rank(Thread*)+0x5a0 (mutex.cpp:460)
V [libjvm.so+0x174cbfc] Mutex::lock_without_safepoint_check(Thread*)+0x4c (mutex.cpp:146)
V [libjvm.so+0x1bdf91a] NativeHeapTrimmer::suspend_periodic_trim(char const*)+0x5a (mutexLocker.hpp:202)
V [libjvm.so+0x1b3545c] SymbolTable::clean_dead_entries(JavaThread*)+0x75c (trimNativeHeap.hpp:58)
V [libjvm.so+0x1b35875] SymbolTable::do_concurrent_work(JavaThread*)+0xd5 (symbolTable.cpp:823)
V [libjvm.so+0x19b072b] ServiceThread::service_thread_entry(JavaThread*, JavaThread*)+0x4ab (serviceThread.cpp:135)
V [libjvm.so+0x112511b] JavaThread::thread_main_inner()+0x13b (javaThread.cpp:776)
V [libjvm.so+0x1bb14f6] Thread::call_run()+0xb6 (thread.cpp:242)
V [libjvm.so+0x1807098] thread_native_entry(Thread*)+0x118 (os_linux.cpp:860)
- links to
-
Review(master)
openjdk/jdk/29212