On Sat, 13 May 2023 07:28:38 GMT, Serguei Spitsyn <sspit...@openjdk.org> wrote:

> This is newly integrated test times out because it has a race in in the Test 
> #A.1 and #A.2.
> The main root cause is a print statement which can case target virtual thread 
> to unpark and unmount.
> This causes that the `StopThreads` unexpectedly fails with the 
> `JVMTI_ERROR_OPAQUE_FRAME` error code.
> The target thread can be in some other unexpected states if JVMTI `StopThread`
> is called before the target thread method `A()` reached the synchronized 
> statement.
> 
> The fix is to replace the `ensureStarted()` with the `ensureAtPointA()`.
> The fix also includes some simplifications related to clearing the target 
> thread interrupt status.
> 
> Testing:
> Hundreds of mach5 runs of `serviceability/jvmti/vthread` tests which include 
> the fixed `StopThreadTest`.
> TBD: To run mack5 tiers1-3.

test/hotspot/jtreg/serviceability/jvmti/vthread/StopThreadTest/StopThreadTest.java
 line 208:

> 206:                 StopThreadTest.setFailed("TestTask.run: expected 
> AssertionError from method A()");
> 207:             }
> 208:             Thread.interrupted();

I'm not sure why this was move down this far. It seems you would want to do 
this before the `StopThreadTest.setFailed()` call just to be extra safe, so 
that means move it before the `if` statement.

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

PR Review Comment: https://git.openjdk.org/jdk/pull/13969#discussion_r1194390086

Reply via email to