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

Reply via email to