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
