RFR: 8349787: Test ThreadPollOnYield.java#default passed unexpected without native library
Alan Bateman
alanb at openjdk.org
Wed Feb 12 07:18:12 UTC 2025
On Wed, 12 Feb 2025 03:24:07 GMT, SendaoYan <syan at openjdk.org> wrote:
> Hi all,
>
> Test test/jdk/java/lang/Thread/virtual/ThreadPollOnYield.java run passed unexpected without native library or with the incorrect native library path. The test command with incorrect native library path shows below. We will seen this tests run passed unexpected before this PR, because the first virtual thread do not run normally without the dependent shared library libVThreadPinner.so, and there is no assert when the first virtual thread run abnormal.
>
>
> mkdir -p empty-directory ; jtreg -v:fail,error -w tmp -nr -jdk:build/linux-x86_64-server-release/images/jdk -nativepath:empty-directory test/jdk/java/lang/Thread/virtual/ThreadPollOnYield.java#default
>
>
> This PR add a latch variable will make sure the first virtual thread run once at least. After this PR run the same test command which with incorrect native library path, and we will seen this pass run timed out as expected.
>
> Change has been verified locally, test-fix only, no risk.
test/jdk/java/lang/Thread/virtual/ThreadPollOnYield.java line 54:
> 52: static void foo(AtomicBoolean done) {
> 53: while (!done.get()) {
> 54: latch.countDown();
While not correct, it looks very strange to do the count down in the loop. It would be a lot clearer to rename "latch" to "started" and do the countDown before the while. Also no need for it to be public.
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/23576#discussion_r1952099166
More information about the core-libs-dev
mailing list