RFR: 8373723: Deadlock with JvmtiTagMap::flush_object_free_events()

David Holmes dholmes at openjdk.org
Tue Dec 16 22:06:41 UTC 2025


On Tue, 16 Dec 2025 03:56:56 GMT, David Holmes <dholmes at openjdk.org> wrote:

>> The JvmtiTagMap::flush_object_free_events() method might be called from different threads.
>> The thread waits using lock until other thread posting events. The locking thread is in vm state doesn't allowing safepoints. While other thread posting events might request safepoints.
>> 
>> The fix is to block thread to allow safepoints while waiting on the lock.
>
> src/hotspot/share/prims/jvmtiTagMap.cpp line 1208:
> 
>> 1206:     {
>> 1207:       // If another thread is posting events, let it finish.
>> 1208:       // This another thread might have safepoints during event callbacks.
> 
> The comment does not read correctly.

Suggestion:

// The other thread can block for safepoints during event callbacks, so ensure we
// are safepoint-safe while waiting.

-------------

PR Review Comment: https://git.openjdk.org/jdk/pull/28839#discussion_r2624903690


More information about the serviceability-dev mailing list