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