On Wed, 17 Sep 2025 14:56:47 GMT, Leonid Mesnik <[email protected]> wrote:
>> The >> `SuspendResumeManager::suspend(bool register_vthread_SR)` >> has an issue while suspend current virtual thread. The suspend tries to >> access vthread oop field to read vthread id after thread is blocked. >> >> Seems, that this case is not used by our debugger and was not covered by >> tests. I found it using jtreg test thread virtual factory plugin. I updated >> existing test to reproduce this problem. The easiest way is to suspend >> current virtual thread using plain SuspendThread. >> >> The fix added some "asymmetry" in suspend/resume mechanism which is >> required because self-suspend doesn't have resume counterpart. > > Leonid Mesnik has updated the pull request incrementally with one additional > commit since the last revision: > > updated after David's feedback src/hotspot/share/runtime/suspendResumeManager.cpp line 104: > 102: ThreadBlockInVM tbivm(self); > 103: MutexLocker ml(_state_lock, Mutex::_no_safepoint_check_flag); > 104: set_suspended_with_id(id, register_vthread_SR); Nit: I'd prefer to have the same function name overloaded with a different parameter type. There can be different opinions here, of course. ------------- PR Review Comment: https://git.openjdk.org/jdk/pull/27317#discussion_r2356512510
