On Mon, 11 May 2026 22:05:15 GMT, Leonid Mesnik <[email protected]> wrote:

> Please review following test fix that improve synchronization of compiled 
> method load/unload events.
> 
> The CompiledMethodLoad/CompiledMethodUnload might be already executing while 
> SetEventCallbacks removed their callbacks.
> Thus they hit 'newEventCount' after setting it to zero and cause test to fail.
> 
> The simple monitor inside event doesn't help, because race might happen while 
> callback is calling in VM or before it obtain lock.
> 
> ---------
> - [x] I confirm that I make this contribution in accordance with the [OpenJDK 
> Interim AI Policy](https://openjdk.org/legal/ai).

test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/events/EM02/em02t003/em02t003.cpp
 line 480:

> 478:         return false;
> 479: 
> 480:     /* Give some time to complete already processing cbNew* events. */

cbNew* is confusing. I would just say "Give some time to complete events 
already in progress."

test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/events/EM02/em02t003/em02t003.cpp
 line 481:

> 479: 
> 480:     /* Give some time to complete already processing cbNew* events. */
> 481:     nsk_jvmti_sleep(100);

Are you sure this is always long enough? I would be nice if there was some sort 
of synchronization that could be done to ensure that events in progress have 
completed, but it seems that is not possible.

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

PR Review Comment: https://git.openjdk.org/jdk/pull/31128#discussion_r3222705787
PR Review Comment: https://git.openjdk.org/jdk/pull/31128#discussion_r3222716640

Reply via email to