Integrated: 8355631: The events might be generated after VM_DEATH event

Leonid Mesnik lmesnik at openjdk.org
Tue Oct 28 23:53:15 UTC 2025


On Thu, 25 Sep 2025 21:43:46 GMT, Leonid Mesnik <lmesnik at openjdk.org> wrote:

> The JVMTI spec says: https://docs.oracle.com/en/java/javase/24/docs/specs/jvmti.html#VMDeath
> `The VM death event notifies the agent of the termination of the VM. No events will occur after the VMDeath event.`
> 
> However, current implementation changes state and only after this start disabling events.  
> 
> It might be not a conformance issue, because there is no way to get thread state in the very beginning of event. 
> The main practical issue is that currently certain events are generated when VM is becoming dead. So any function in event should check error against JVMTI_PHASE_DEAD. We can easily trigger it by running tests with enabled https://bugs.openjdk.org/browse/JDK-8352654
> 
> Also, it would be useful to guarantee that VM_DEATH is last event so users can safely close/destroy all supported all structures used by Jvmti agent (like RawMonitors).
> 
> The proposed fix is to stop events posting and wait for already executing events before vm_death is posted.
> 
> Currently, I haven't seen problems with this fix and  https://bugs.openjdk.org/browse/JDK-8352654.

This pull request has now been integrated.

Changeset: 723d6f83
Author:    Leonid Mesnik <lmesnik at openjdk.org>
URL:       https://git.openjdk.org/jdk/commit/723d6f83a2f98849e5bd72d2e9be613d04eed576
Stats:     122 lines in 4 files changed: 80 ins; 1 del; 41 mod

8355631: The events might be generated after VM_DEATH event

Reviewed-by: sspitsyn, dholmes

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

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


More information about the hotspot-dev mailing list