On Fri, 12 May 2023 20:58:31 GMT, Chris Plummer <cjplum...@openjdk.org> wrote:
> Currently kill001 assumes that JVMTI StopThread (via JDI > ThreadReference.stop) is not supported for virtual threads. > [JDK-8306034](https://bugs.openjdk.org/browse/JDK-8306034) is adding support > for StopThread on a virtual thread as long as it is suspended and mounted. > This means, for example, it will work for virtual threads in the following > conditions: > - Debuggee in a loop and suspended > - Debuggee at a breakpoint and suspended > > But will continue to not work in the following situations: > - Debuggee in a loop but not suspended > - Debuggee suspended but unmounted, such as during a call the Thread.sleep() > > kill001 suspends all threads at a breakpoint and then does a "jdb kill" on > each thread, which translate to `ThreadReference.stop()`, so this is expected > to work now. > > Most of the changes involve undoing the virtual thread specific code that was > added to the test as part of > [JDK-8282385](https://bugs.openjdk.org/browse/JDK-8282385). However, there is > an additional issue that also needs fixing. The test relies on the fact that > the async exception is normally not caught, and that jdb normally stops when > an uncaught exception is thrown. With virtual threads there ends up being an > exception handler in `java.lang.VirtualThread.run()`, resulting in jdb not > stopping when the async exception is thrown. This is fixed by having the test > issue a jdb "catch all <classname>" command for each async exception type > that the test throws. Looks good. Thanks, Serguei test/hotspot/jtreg/vmTestbase/nsk/jdb/kill/kill001/kill001a.java line 148: > 146: String ThreadFinished = "Thread finished: " + this.name; > 147: String ThreadInterrupted = "WARNING: Thread was interrupted > while waiting for killing: " + this.name; > 148: String CaughtExpected ="Thread " + this.name + " caught expected > async exception: " + expectedException; Nit: Space is missed after '=' sigh. ------------- Marked as reviewed by sspitsyn (Reviewer). PR Review: https://git.openjdk.org/jdk/pull/13967#pullrequestreview-1425258453 PR Review Comment: https://git.openjdk.org/jdk/pull/13967#discussion_r1192863515