-
Bug
-
Resolution: Fixed
-
P4
-
None
Issue | Fix Version | Assignee | Priority | Status | Resolution | Resolved In Build |
---|---|---|---|---|---|---|
JDK-8311566 | 17.0.9-oracle | Kevin Walls | P4 | Resolved | Fixed | b02 |
JDK-8304253 | 17.0.8 | Johannes Bechberger | P4 | Resolved | Fixed | b01 |
GetStackTrace returns a stack trace like the following:
```
Frame 0: Native frame Lprofiling/sanity/ASGSTBaseTest;.checkAsyncGetStackTraceCall()Z
Frame 1: Java frame Lprofiling/sanity/ASGSTBaseTest;.main([Ljava/lang/String;)V: 0
Frame 2: Java frame Ljava/lang/invoke/LambdaForm$DMH.0x0000000801002000;.invokeStatic(Ljava/lang/Object;Ljava/lang/Object;)V: 10
Frame 3: Java frame Ljava/lang/invoke/LambdaForm$MH.0x0000000801003400;.invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;: 33
Frame 4: Java frame Ljava/lang/invoke/Invokers$Holder;.invokeExact_MT(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;: 20
Frame 5: Java frame Ljdk/internal/reflect/DirectMethodHandleAccessor;.invokeImpl(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;: 55
Frame 6: Java frame Ljdk/internal/reflect/DirectMethodHandleAccessor;.invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;: 23
Frame 7: Java frame Ljava/lang/reflect/Method;.invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;: 102
Frame 8: Java frame Lcom/sun/javatest/regtest/agent/MainWrapper$MainThread;.run()V: 134
Frame 9: Java frame Ljava/lang/Thread;.runWith(Ljava/lang/Object;Ljava/lang/Runnable;)V: 5
Frame 10: Java frame Ljava/lang/Thread;.run()V: 19
```
AsyncGetCallTrace returns:
```
Frame 0: Native frame Lprofiling/sanity/ASGSTBaseTest;.checkAsyncGetStackTraceCall()Z
Frame 1: Java frame Lprofiling/sanity/ASGSTBaseTest;.main([Ljava/lang/String;)V: 0
Frame 2: Java frame Ljava/lang/invoke/LambdaForm$DMH.0x0000000801002000;.invokeStatic(Ljava/lang/Object;Ljava/lang/Object;)V: 10
```
This is related to a bug in `frame::is_safe_for_sender` which is already fixed on PPC (https://bugs.openjdk.org/browse/JDK-8209996) but is still present on x86, albeit only for AsyncGetCallTrace and not for JFR.
The issue itself first appeared with the implementation of
This test error occurs when checking for the length of the returned traces in the sanity test (see https://github.com/parttimenerd/jdk/commit/98fe63f42f5a3d5ec9fd151b034dfeb3ef767afd).
- backported by
-
JDK-8304253 AsyncGetCallTrace obtains too few frames in sanity test
- Resolved
-
JDK-8311566 AsyncGetCallTrace obtains too few frames in sanity test
- Resolved
- relates to
-
JDK-8303168 AsyncGetCallTrace/MyPackage/ASGCTBaseTest.java failed with "GetStackTrace and AsyncGetCallTrace return different number of frames"
- In Progress
-
JDK-8209996 [PPC64] Fix JFR profiling.
- Resolved
- links to
-
Commit openjdk/jdk17u-dev/4baaa110
-
Commit openjdk/jdk/db483a38
-
Review openjdk/jdk17u-dev/1197
-
Review openjdk/jdk17u/366
-
Review openjdk/jdk/12535