On Thu, 25 Sep 2025 21:43:46 GMT, Leonid Mesnik <[email protected]> wrote:

> After this fix the VMDeath callback also can't generate any events.

I think this needs a CSR request and likely a release note. Though if you plan 
to later wait for all event processing to complete, is it even necessary to 
make the current change? The spec is very imprecise when it comes to when 
exactly no further events will be processed, but it seems reasonable to expect 
that the callback for VM_DEATH is the last thing that should generate events. 
Though unless event processing is fully synchronized with locks (which I'm 
pretty sure it isn't) then you have races no matter what you do. I am concerned 
that, given you cannot completely prevent events from being generated "after" 
VM_DEATH, the change may "break" more code than it "fixes". ??

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

> 1058: void
> 1059: JvmtiEventControllerPrivate::vm_death() {
> 1060:   _execution_finished = true;

Unless there is some lock guarding this that I cannot see in this diff, if you 
want to ensure this will be seen as soon as possible then you need a 
`store_fence` (and the variable should be `volatile` - and will be a candidate 
for `Atomic<T>`). You are still racing with others threads but this would at 
least attempt to minimise the window.

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

PR Review: https://git.openjdk.org/jdk/pull/27504#pullrequestreview-3282743437
PR Review Comment: https://git.openjdk.org/jdk/pull/27504#discussion_r2389970167

Reply via email to