RFR: 8336846: assert(state->get_thread() == jt) failed: handshake unsafe conditions [v4]
Serguei Spitsyn
sspitsyn at openjdk.org
Tue Aug 6 21:06:45 UTC 2024
> The JVMTI Watch Field functions do not disable VTMS transitions with the `JvmtiVTMSTransitionDisabler`:
> - `SetFieldAccessWatch()`
> - `ClearFieldAccessWatch()`
> - `SetFieldModificationWatch()`
> - `ClearFieldModificationWatch()`
> so in the `recompute_enabled()` we could see that a vthread is mounted, but in the `EnterInterpOnlyModeClosure` handshake the thread could have been unmounted already. This is a root cause of failures with this assert.
>
> The fix is to disable transitions in the `JvmtiEventControllerPrivate::change_field_watch()` function.
>
> Testing:
> - TBD: submit mach5 tiers 1-6
Serguei Spitsyn has updated the pull request incrementally with one additional commit since the last revision:
use MUTEX_DEFL instead of MUTEX_DEFN to define JvmtiVTMSTransition_lock
-------------
Changes:
- all: https://git.openjdk.org/jdk/pull/20413/files
- new: https://git.openjdk.org/jdk/pull/20413/files/3d166446..29f807de
Webrevs:
- full: https://webrevs.openjdk.org/?repo=jdk&pr=20413&range=03
- incr: https://webrevs.openjdk.org/?repo=jdk&pr=20413&range=02-03
Stats: 2 lines in 1 file changed: 1 ins; 1 del; 0 mod
Patch: https://git.openjdk.org/jdk/pull/20413.diff
Fetch: git fetch https://git.openjdk.org/jdk.git pull/20413/head:pull/20413
PR: https://git.openjdk.org/jdk/pull/20413
More information about the serviceability-dev
mailing list