The test fails with the virtual test thread factory because it tries to find 
the "main" thread in the list of threads returned by JDI, but "main" is a 
virtual thread and will only be returned by JDI if the debug agent is launched 
with includevirtualthreads=y. As a result the thread is not found and the test 
asserts:

java.lang.RuntimeException: assertTrue: expected true, was false
        at jdk.test.lib.Asserts.fail(Asserts.java:594)
        at jdk.test.lib.Asserts.assertTrue(Asserts.java:486)
        at jdk.test.lib.Asserts.assertTrue(Asserts.java:472)
        at TestNestmateAttr.checkGoodTransforms(TestNestmateAttr.java:511)
        at TestNestmateAttr.methodEntered(TestNestmateAttr.java:320)
        at TestScaffold$EventHandler.notifyEvent(TestScaffold.java:205)
        at TestScaffold$EventHandler.run(TestScaffold.java:279)
        at java.base/java.lang.Thread.run(Thread.java:1583)

The fix is to always run the debug agent with includevirtualthreads=y.

Tested by running all com/sun/jdi tests locally with and without the virtual 
test thread factory. Also ran tier1 and tier5 svc test tasks.

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

Commit messages:
 - Make sure we always run debug agent with includevirtualthreads=y

Changes: https://git.openjdk.org/jdk/pull/14324/files
 Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=14324&range=00
  Issue: https://bugs.openjdk.org/browse/JDK-8309509
  Stats: 7 lines in 2 files changed: 3 ins; 2 del; 2 mod
  Patch: https://git.openjdk.org/jdk/pull/14324.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/14324/head:pull/14324

PR: https://git.openjdk.org/jdk/pull/14324

Reply via email to