Integrated: 8336846: assert(state->get_thread() == jt) failed: handshake unsafe conditions

Serguei Spitsyn sspitsyn at openjdk.org
Wed Aug 7 17:44:36 UTC 2024


On Thu, 1 Aug 2024 04:09:31 GMT, Serguei Spitsyn <sspitsyn at openjdk.org> wrote:

> 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

This pull request has now been integrated.

Changeset: 36d08c21
Author:    Serguei Spitsyn <sspitsyn at openjdk.org>
URL:       https://git.openjdk.org/jdk/commit/36d08c213d03deddf69ecb9770a3afef73a15444
Stats:     5 lines in 2 files changed: 3 ins; 1 del; 1 mod

8336846: assert(state->get_thread() == jt) failed: handshake unsafe conditions

Reviewed-by: amenkov, dholmes, cjplummer, pchilanomate, lmesnik

-------------

PR: https://git.openjdk.org/jdk/pull/20413


More information about the serviceability-dev mailing list