8375001: NativeThreadSet get wrong currentNativeThread when using virtual thread #2542
+2
−2
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Hi, I create an issue in the bug system: https://bugs.openjdk.org/browse/JDK-8375001
NativeThread.currentNativeThread();should be replaced byNativeThread.current();. Otherwise, when using virtual thread, the program will run into a wrong state.Now, I just changed the function used in NativeTheadSet.java, but I did not delete the
currentNativeThreadinsrc/java.base/unix/classes/sun/nio/ch/NativeThread.javaandsrc/java.base/windows/classes/sun/nio/ch/NativeThread.java. I am wondering if I should delete these functions since they are useless now. I hope to get some advice. Thank you!Besides, the jtreg testcases which can produce this issue is from JDK-8310902 (with option:
-testThreadFactory:Virtual -testThreadFactoryPath:./jtregTestThreadFactory.jar). Do I need to bring the testcasetest/jdk/java/nio/channels/FileChannel/CloseDuringTransfer.javahere?Progress
Issue
Reviewing
Using
gitCheckout this PR locally:
$ git fetch https://git.openjdk.org/jdk21u-dev.git pull/2542/head:pull/2542$ git checkout pull/2542Update a local copy of the PR:
$ git checkout pull/2542$ git pull https://git.openjdk.org/jdk21u-dev.git pull/2542/headUsing Skara CLI tools
Checkout this PR locally:
$ git pr checkout 2542View PR using the GUI difftool:
$ git pr show -t 2542Using diff file
Download this PR as a diff file:
https://git.openjdk.org/jdk21u-dev/pull/2542.diff
Using Webrev
Link to Webrev Comment