On Thu, 25 Sep 2025 21:43:46 GMT, Leonid Mesnik <[email protected]> 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 <[email protected]> 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
