> 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:

  reverted comment back

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

Changes:
  - all: https://git.openjdk.org/jdk/pull/27504/files
  - new: https://git.openjdk.org/jdk/pull/27504/files/398c808a..6934e8e7

Webrevs:
 - full: https://webrevs.openjdk.org/?repo=jdk&pr=27504&range=05
 - incr: https://webrevs.openjdk.org/?repo=jdk&pr=27504&range=04-05

  Stats: 1 line in 1 file changed: 0 ins; 0 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

Reply via email to