On Thu, 1 Aug 2024 04:09:31 GMT, Serguei Spitsyn <sspit...@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

src/hotspot/share/prims/jvmtiEventController.cpp line 988:

> 986:     (*count_addr)++;
> 987:     if (*count_addr == 1) {
> 988:       JvmtiVTMSTransitionDisabler disabler;

Could you just declare this outside the if-block rather than repeating it?

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

PR Review Comment: https://git.openjdk.org/jdk/pull/20413#discussion_r1699441402

Reply via email to