-
Bug
-
Resolution: Fixed
-
P4
-
21, 22, 23
-
b12
Issue | Fix Version | Assignee | Priority | Status | Resolution | Resolved In Build |
---|---|---|---|---|---|---|
JDK-8331329 | 22.0.2 | Aleksey Shipilev | P4 | Resolved | Fixed | b05 |
JDK-8339173 | 21.0.6-oracle | Calvin Cheung | P4 | Resolved | Fixed | b01 |
JDK-8331335 | 21.0.4 | Aleksey Shipilev | P4 | Resolved | Fixed | b01 |
Because of this, if from that upcall to Java a virtual thread tries to yield, and all the other methods in the stack are compiled, we will incorrectly take the freeze fast path and freeze everything in the stack including the native frames. By forcing the slow path instead we will identify the upcall stub and pin the vthread.
The issue can be easily reproduced by running test test/jdk/java/lang/Thread/virtual/stress/GetStackTraceALotWhenPinned.java from the loom repo with -Xcomp flag.
- backported by
-
JDK-8331329 Upcall stub might go undetected when freezing frames
- Resolved
-
JDK-8331335 Upcall stub might go undetected when freezing frames
- Resolved
-
JDK-8339173 Upcall stub might go undetected when freezing frames
- Resolved
- links to
-
Commit openjdk/jdk21u-dev/c922c50b
-
Commit openjdk/jdk22u/b2fbc828
-
Commit openjdk/jdk/93feda3d
-
Review openjdk/jdk21u-dev/532
-
Review openjdk/jdk22u/168
-
Review openjdk/jdk/17964