RFR: 8307968: serviceability/jvmti/vthread/StopThreadTest/StopThreadTest.java timed out

Chris Plummer cjplummer at openjdk.org
Mon May 15 21:43:44 UTC 2023


On Sat, 13 May 2023 07:28:38 GMT, Serguei Spitsyn <sspitsyn at 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


More information about the serviceability-dev mailing list