RFR: 8355631: The events might be generated after VM_DEATH event [v3]
Leonid Mesnik
lmesnik at openjdk.org
Sat Oct 25 18:27:39 UTC 2025
> 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.
Leonid Mesnik has updated the pull request incrementally with one additional commit since the last revision:
cleanup
-------------
Changes:
- all: https://git.openjdk.org/jdk/pull/27504/files
- new: https://git.openjdk.org/jdk/pull/27504/files/35b7c647..405d5a9c
Webrevs:
- full: https://webrevs.openjdk.org/?repo=jdk&pr=27504&range=02
- incr: https://webrevs.openjdk.org/?repo=jdk&pr=27504&range=01-02
Stats: 14 lines in 3 files changed: 0 ins; 13 del; 1 mod
Patch: https://git.openjdk.org/jdk/pull/27504.diff
Fetch: git fetch https://git.openjdk.org/jdk.git pull/27504/head:pull/27504
PR: https://git.openjdk.org/jdk/pull/27504
More information about the serviceability-dev
mailing list