On Fri, 6 Dec 2024 22:28:29 GMT, Chris Plummer <cjplum...@openjdk.org> wrote:
> This test fails after > [JDK-8338713](https://bugs.openjdk.org/browse/JDK-8338713) when using > JTREG_TEST_THREAD_FACTORY=Virtual. The test uses JVMTI StopThread on a thread > expecting it to be mounted. Before > [JDK-8338713](https://bugs.openjdk.org/browse/JDK-8338713) it would be > mounted because it was blocked on a syncrhonized, which resulted in the > thread being pinned. After > [JDK-8338713](https://bugs.openjdk.org/browse/JDK-8338713) this is no longer > the case and the virtual thread has unmounted. This causes JVMTI StopThread > to fail with JVMTI_ERROR_OPAQUE_FRAME because it only supports mounted > virtual threads. > > Fixed by using the VThreadPinner class to make sure the virtual threads > remains pinned, and therefore mounted. > > Testing: > > - [x] Ran jdb tests locally in both virtual thread mode and platform thread > mode. > - [ ] tier1 > - [ ] tier2 svc > - [ ] tier5 svc test/hotspot/jtreg/vmTestbase/nsk/jdb/kill/kill001/kill001a.java line 166: > 164: } > 165: > 166: public void run1() { It might be a bit clear to rename run1 to runPinned (avoids run and run1). test/hotspot/jtreg/vmTestbase/nsk/share/jdb/Launcher.java line 142: > 140: /* Some jdb tests need java.library.path setup for native > libraries. */ > 141: String libpath = System.getProperty("java.library.path"); > 142: args.add("-R-Djava.library.path=" + libpath); Good, I wasn't sure how this inherit. ------------- PR Review Comment: https://git.openjdk.org/jdk/pull/22620#discussion_r1874351813 PR Review Comment: https://git.openjdk.org/jdk/pull/22620#discussion_r1874351861