RFR: 8376405: Virtual thread crash: assert(!_current->is_suspended()) failed: must be
David Holmes
dholmes at openjdk.org
Fri Jan 30 04:39:23 UTC 2026
On Wed, 28 Jan 2026 21:56:00 GMT, Patricio Chilano Mateo <pchilanomate at openjdk.org> wrote:
> Please review this small fix. In 8375362 we skipped the suspend check in `MountUnmountDisabler::start_transition` for transition disablers to avoid deadlocks, but that means we also need to update the assert in `~UnmountBeginMark()`. I was able to reproduce the crash locally using ThreadStateTest2.java and confirmed it is now fixed.
>
> Thanks,
> Patricio
Seems reasonable. One suggestion that may not be worthwhile so feel free to ignore.
Thanks
src/hotspot/share/runtime/continuation.cpp line 92:
> 90: assert(!_current->is_suspended() ||
> 91: (_current->is_vthread_transition_disabler() && _result != freeze_ok), "must be");
> 92: #endif
Suggestion:
assert(!_current->is_suspended()
JVMTI_ONLY(|| (_current->is_vthread_transition_disabler() && _result != freeze_ok))
, "must be");
Is this a worthwhile distinction? I guess these days the only way to suspend is through JVMTI. ??
-------------
Marked as reviewed by dholmes (Reviewer).
PR Review: https://git.openjdk.org/jdk/pull/29473#pullrequestreview-3726282698
PR Review Comment: https://git.openjdk.org/jdk/pull/29473#discussion_r2744568340
More information about the serviceability-dev
mailing list