Hi Gary,
Should the following comment come first, not after the join() call:
115 mt.join();
116 // Wait till the other thread completes its execution.
Rather than using JVMTI to detect if the field is suspended, couldn't
you have just set a static variable in callbackFieldAccess() and check
it from isSuspended()?
Before doing the fix, did you first check if the bug is easily
reproduced by making is sleep for 1ms instead of 100ms?
thanks,
Chris
On 9/26/18 7:55 AM, Gary Adams wrote:
A race condition exists in hs203t003 between the main test thread and
the processing in callbackFieldAccess processing. The main thread
already includes a polling loop to wait for the redefine class operation
to be performed, but it does not wait for the following suspend thread
operation to be completed.
This changeset adds an additional wait for the suspend thread to
complete.
It also checks the error returns from popThreadFrame and resumeThread
to issue an additional error message if these native routines returned
an error.
Webrev: http://cr.openjdk.java.net/~gadams/8210984/webrev.00/
Issue: https://bugs.openjdk.java.net/browse/JDK-8210984