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

Chris Plummer cjplummer at openjdk.org
Mon May 15 21:47:46 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 243:

> 241:         static void A() {
> 242:             log("TestTask.A: started");
> 243:             atPointA = true;

What happens if we are at the point where this flag has been set true, but we have not yet executed the monitorenter? Will the test pass if the StopThread is done a bit early here?

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

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


More information about the serviceability-dev mailing list