RFR: 8367725: Incorrect reading of oop in SuspendResumeManager::suspend while thread is blocked
Leonid Mesnik
lmesnik at openjdk.org
Tue Sep 16 16:04:56 UTC 2025
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.
-------------
Commit messages:
- 8367725: Incorrect reading of oop in SuspendResumeManager::suspend while thread is blocked
Changes: https://git.openjdk.org/jdk/pull/27317/files
Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=27317&range=00
Issue: https://bugs.openjdk.org/browse/JDK-8367725
Stats: 50 lines in 5 files changed: 36 ins; 8 del; 6 mod
Patch: https://git.openjdk.org/jdk/pull/27317.diff
Fetch: git fetch https://git.openjdk.org/jdk.git pull/27317/head:pull/27317
PR: https://git.openjdk.org/jdk/pull/27317
More information about the serviceability-dev
mailing list