-
Bug
-
Resolution: Fixed
-
P2
-
15
-
b33
-
Not verified
Issue | Fix Version | Assignee | Priority | Status | Resolution | Resolved In Build |
---|---|---|---|---|---|---|
JDK-8249842 | 16 | Markus Grönlund | P2 | Resolved | Fixed | b07 |
JDK-8250208 | 15.0.2 | Markus Grönlund | P2 | Resolved | Fixed | b01 |
JDK-8250507 | 15.0.1 | Markus Grönlund | P2 | Resolved | Fixed | b03 |
The JVM.getStackTraceId() invocation used to look like this:
Before (JDK14):
[0] jdk.jfr.internal.JVM.getStackTraceId(I)J
[1] jdk.jfr.internal.EventWriter.putStackTrace()V
[2] jdk.jfr.internal.handlers.EventHandler1917_1595033287389-6404.write(JJLjava/lang/String;J)V
[3] jdk.jfr.events.SocketWriteEvent.commit()V
[4] java.net.Socket$SocketOutputStream.write([BII)V
With
[0] jdk.jfr.internal.JVM.getStackTraceId(I)J
[1] jdk.jfr.internal.EventWriter.putStackTrace()V
[2] jdk.jfr.internal.handlers.EventHandler1917_1595033287389-6404.write(JJLjava/lang/String;J)V
[3] java.net.Socket$SocketOutputStream.write([BII)V
I.e, write() directly invokes EventHandler.write(), bypassing the invocation of SocketWriteEvent.commit().
The parameter to JVM.getStackTraceId is an integer representing what is called a "skip level", i.e. how many frames should be skipped before the real stacktrace. The skip level is used to filter out frames related to the JFR framework, to let the user focus on the real trace.
The current skip level is set to 4 (5 for Exception events), but this is now too big in relation to the modifications done in
For events using the new handler mechanism, the skip level should be updated to 3 (and 4 for Exceptions events respectively) to align with the changes in
- backported by
-
JDK-8249842 JFR: java.base events have incomplete stacktraces
-
- Resolved
-
-
JDK-8250208 JFR: java.base events have incomplete stacktraces
-
- Resolved
-
-
JDK-8250507 JFR: java.base events have incomplete stacktraces
-
- Resolved
-
- relates to
-
JDK-8244661 JFR: Remove use of thread-locals for java.base events
-
- Resolved
-
-
JDK-8249716 Create tests to verify proper stacktrace skip levels for java.base events
-
- Open
-