On Tue, 20 Jan 2026 20:46:04 GMT, Patricio Chilano Mateo 
<[email protected]> wrote:

>> Please review the following patch. This fixes a bug in how we handle state 
>> changes for the timed `Object.wait` case in `afterYield`, which can leave a 
>> virtual thread stuck in the `BLOCKED` state. It can be triggered by two 
>> consecutive calls to timed `Object.wait`, if the first call receives a 
>> notification and the second call relies on the timeout task to wake up the 
>> thread. I added the full sequence of events that leads to the vthread 
>> getting stuck in JBS.
>> 
>> The fix is to check for `notified` and attempt to change the state to 
>> `BLOCKED` inside the synchronized block. This guarantees that we don't 
>> change the state of an already new timed `Object.wait` call.
>> 
>> The PR includes a new test which reproduces the issue when run several times 
>> in mach5. It's a hybrid of my original repro test and another one created by 
>> @AlanBateman.
>> 
>> Thanks,
>> Patricio
>
> Patricio Chilano Mateo has updated the pull request incrementally with one 
> additional commit since the last revision:
> 
>   Randomly choose platform or virtual notifier

Marked as reviewed by alanb (Reviewer).

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

PR Review: https://git.openjdk.org/jdk/pull/29255#pullrequestreview-3686247862

Reply via email to