RFR: 8375457: Test serviceability/jvmti/vthread/SelfSuspendDisablerTest/SelfSuspendDisablerTest.java#default timed out
Patricio Chilano Mateo
pchilanomate at openjdk.org
Fri Feb 20 22:22:04 UTC 2026
On Fri, 20 Feb 2026 20:58:24 GMT, Serguei Spitsyn <sspitsyn at openjdk.org> wrote:
>> src/hotspot/share/prims/jvmtiEnv.cpp line 1083:
>>
>>> 1081: // It must be suspended in the suspend_thread call out of disabler context.
>>> 1082: oop cur_oop = self_tobj();
>>> 1083: if (cur_oop != nullptr && JvmtiVTSuspender::is_vthread_suspended(cur_oop)) {
>>
>> Shouldn't `JvmtiVTSuspender::is_vthread_suspended(cur_oop)` always be true? Also (preexistent) above when we iterate `elist`?
>
> Thank you for checking. Current virtual thread can be in the `except_list`. Then it has already been resumed at the line 1077.
But if it's in the list then `self_tobj()` should be `nullptr`, i.e non `nullptr` implies it must be suspended. We could just add it as an assert inside the conditional.
Also when iterating the `elist` above, we just called `JvmtiVTSuspender::register_all_vthreads_suspend()` so `JvmtiVTSuspender::is_vthread_suspended` should be true for all vthreads.
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/29802#discussion_r2835326433
More information about the serviceability-dev
mailing list