RFR: 8311177: Switching to interpreter only mode in carrier thread can lead to crashes [v2]
Serguei Spitsyn
sspitsyn at openjdk.org
Thu May 30 02:31:29 UTC 2024
> Please, review the following `interp-only` issue related to carrier threads.
> There are 3 problems fixed here:
> - The `EnterInterpOnlyModeClosure::do_threads` is taking the `JvmtiThreadState` with the `jt->jvmti_thread_state()` which is incorrect when we have a deal with a carrier thread. The target state is known at the point when the `HandshakeClosure` is set, so the fix is to pass it as a constructor parameter.
> - The `state->is_pending_interp_only_mode())` was processed at mounts only but it has to be processed for unmounts as well.
> - The test `test/hotspot/jtreg/serviceability/jvmti/vthread/MethodExitTest/libMethodExitTest.cpp` has a wrong assumption that there can't be `MethodExit` event on the carrier thread when the function `breakpoint_hit1` is being executed. However, it can happen if the virtual thread gets unmounted.
>
> The fix also includes new test case `vthread/CarrierThreadEventNotification` developed by Patricio.
>
> Testing:
> - Ran new test case locally
> - Ran mach5 tiers 1-6
Serguei Spitsyn has updated the pull request incrementally with one additional commit since the last revision:
review: addressed nits in new test
-------------
Changes:
- all: https://git.openjdk.org/jdk/pull/19438/files
- new: https://git.openjdk.org/jdk/pull/19438/files/a0f5d278..2f75975f
Webrevs:
- full: https://webrevs.openjdk.org/?repo=jdk&pr=19438&range=01
- incr: https://webrevs.openjdk.org/?repo=jdk&pr=19438&range=00-01
Stats: 18 lines in 2 files changed: 0 ins; 2 del; 16 mod
Patch: https://git.openjdk.org/jdk/pull/19438.diff
Fetch: git fetch https://git.openjdk.org/jdk.git pull/19438/head:pull/19438
PR: https://git.openjdk.org/jdk/pull/19438
More information about the serviceability-dev
mailing list