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