On Thu, 8 May 2025 13:46:02 GMT, Patricio Chilano Mateo 
<pchilanom...@openjdk.org> wrote:

> Please review this small test fix. We need to make sure the two threads are 
> blocked on the expected locks before invoking findMonitorDeadlockedThreads. 
> In the failing cases, one of the threads is seen as blocked while waiting for 
> a class to be initialized by the other thread (I've added the stack traces 
> showing where this occurs in the bug comments).
> 
> I should point out that there is an inconsistency in the VM here though. We 
> are changing the state to Thread.State.BLOCKED while using ObjectLocker 
> internally when there is contention to enter the monitor, but we don’t change 
> the state to Thread.State.WAITING when using ObjectLocker and calling 
> wait_uninterruptibly(). I still think the test should be improved to avoid 
> having to think if there is some other synchronize statement executed along 
> the way (CyclicBarrier implementation for instance, or code run by a vthread 
> during startup).
> 
> I was able to reproduce the failure and verified it doesn’t reproduce anymore 
> with the fix.
> 
> Thanks,
> Patricio

This pull request has now been integrated.

Changeset: 9ebb5d42
Author:    Patricio Chilano Mateo <pchilanom...@openjdk.org>
URL:       
https://git.openjdk.org/jdk/commit/9ebb5d42d43a743cf3a5197c7dabe46ac8120474
Stats:     10 lines in 1 file changed: 5 ins; 0 del; 5 mod

8346255: java/lang/management/ThreadMXBean/VirtualThreadDeadlocks.java finds no 
deadlock

Reviewed-by: kevinw, dholmes, alanb

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

PR: https://git.openjdk.org/jdk/pull/25119

Reply via email to