Hi JC,
You are right, the synchronization is required across callbacks, otherwise JVMTI phase could change in the middle of a callback. I will send a new version of the patch soon. Thanks! --Daniil From: Jean Christophe Beyler <jcbey...@google.com> Date: Friday, March 15, 2019 at 4:45 PM To: Daniil Titov <daniil.x.ti...@oracle.com> Cc: OpenJDK Serviceability <serviceability-dev@openjdk.java.net> Subject: Re: RFR: 8218401: WRONG_PHASE: vmTestbase/nsk/jvmti test crash Hi Daniil, Is it not possible that the VMDeath would happen later in the case of: http://cr.openjdk.java.net/~dtitov/8218401/webrev.01/test/hotspot/jtreg/vmTestbase/nsk/jvmti/FramePop/framepop002/framepop002.cpp.html For example, that callbacks are not yet disabled when we pass the new test: + if (!callbacksEnabled) { + return; + } But gets disabled right after? (this is for my own understanding of what is possible or not :-)) Thanks! Jc On Fri, Mar 15, 2019 at 4:08 PM Daniil Titov <daniil.x.ti...@oracle.com> wrote: Please review the change that fixes 3 tests that intermittently fail with JVMTI_ERROR_WRONG_PHASE error. The problem here is that the callbacks these tests enable keep processing events and perform JVMTI calls after VM is terminated. The fix makes these test listen for VMDeath event and quick return from the callbacks after VMDeath event is received. Webrev: http://cr.openjdk.java.net/~dtitov/8218401/webrev.01/ Bug: https://bugs.openjdk.java.net/browse/JDK-8218401 Thanks! -Daniil -- Thanks, Jc