The JVMTI spec says:
The VM death event notifies the agent of the termination of the VM. No events will occur after the VMDeath event.
VM post VM death, change phase to JVMTI_PHASE_DEAD and call recompute enabled to disable jvmti even generation. See:
https://github.com/openjdk/jdk/blob/master/src/hotspot/share/prims/jvmtiExport.cpp#L782
However, the event might be still generated concurrently at the same time.
Thus, the event might be generated in JVMTI_PHASE_DEAD phase.
However spec doesn't say anything about changing phase during event callback, so there might be events that are posted right before death phase but executing in death phase.
For user it means that it is needed to expect dead phase even events could not be send in this phase. This might be impractical.
The VM death event notifies the agent of the termination of the VM. No events will occur after the VMDeath event.
VM post VM death, change phase to JVMTI_PHASE_DEAD and call recompute enabled to disable jvmti even generation. See:
https://github.com/openjdk/jdk/blob/master/src/hotspot/share/prims/jvmtiExport.cpp#L782
However, the event might be still generated concurrently at the same time.
Thus, the event might be generated in JVMTI_PHASE_DEAD phase.
However spec doesn't say anything about changing phase during event callback, so there might be events that are posted right before death phase but executing in death phase.
For user it means that it is needed to expect dead phase even events could not be send in this phase. This might be impractical.
- relates to
-
JDK-8352654 [REDO] nsk/jvmti/ tests should fail when nsk_jvmti_setFailStatus() is called
-
- Open
-