RFR: 8373944: ObjectMonitor::ExitOnSuspend can call java_lang_VirtualThread::set_onWaitingList() while in safepoint
Fredrik Bredberg
fbredberg at openjdk.org
Mon Feb 23 15:04:33 UTC 2026
On Thu, 19 Feb 2026 16:36:01 GMT, Patricio Chilano Mateo <pchilanomate at openjdk.org> wrote:
> Please review the following patch. `ExitOnSuspend::operator()` may run while a safepoint is in progress, which can lead to crashes because releasing the monitor involves touching oops if the successor is a virtual thread. The proposed fix is to process pending operations before releasing the monitor.
> I added a new test that reliably reproduces the issue with the extra `assert_not_at_safepoint()` added in this patch, and verified the issue is now fixed.
>
> Thanks,
> Patricio
There is almost always more than meets the eye when it comes to ExitOnSuspend. So it's nice to see a small code change to sort out this current problem, and a very well written test. Thank you!
-------------
Marked as reviewed by fbredberg (Reviewer).
PR Review: https://git.openjdk.org/jdk/pull/29822#pullrequestreview-3841600409
More information about the serviceability-dev
mailing list