-
Enhancement
-
Resolution: Fixed
-
P3
-
11, 12, 13
-
b15
Issue | Fix Version | Assignee | Priority | Status | Resolution | Resolved In Build |
---|---|---|---|---|---|---|
JDK-8243616 | 13.0.4 | Denghui Dong | P3 | Resolved | Fixed | b03 |
JDK-8237902 | 11.0.7 | Markus Grönlund | P3 | Resolved | Fixed | b01 |
Recordings where stackTrace has been enabled for OldObjectSample events creates an unexpected amount of data.
For example, a recording where OldObjectSample is disabled is 2 MB while one where enabled and stackTrace=true becomes 10 MB. Most likely excessive (or redundant) information is written down. 'jfr summary' reveals that the space is taken by the checkpoint event
The parser log shows a pattern where a large checkpoint happens multiple times. See attached log.txt
[0.699s][trace][jfr,system,parser] New constant pool: startPosition=12945672, size=370710, deltaToNext=-11695, flush=false, poolCount=6
[0.699s][trace][jfr,system,parser] Constant: java.lang.Class[1613]
[0.700s][trace][jfr,system,parser] Constant: jdk.types.Package[281]
[0.700s][trace][jfr,system,parser] Constant: jdk.types.Module[7]
[0.700s][trace][jfr,system,parser] Constant: jdk.types.ClassLoader[13]
[0.700s][trace][jfr,system,parser] Constant: jdk.types.Method[3775]
[0.701s][trace][jfr,system,parser] Constant: jdk.types.Symbol[5470]
...
Each large checkpoint is about 400 kB.
The log can be reproduced like this:
$ jfr -J-Xlog:jfr+system+parser=trace --events Dummy recording.jfr
There could possibly be a similar problem where reference chains are recorded (cutoff > 0)
For example, a recording where OldObjectSample is disabled is 2 MB while one where enabled and stackTrace=true becomes 10 MB. Most likely excessive (or redundant) information is written down. 'jfr summary' reveals that the space is taken by the checkpoint event
The parser log shows a pattern where a large checkpoint happens multiple times. See attached log.txt
[0.699s][trace][jfr,system,parser] New constant pool: startPosition=12945672, size=370710, deltaToNext=-11695, flush=false, poolCount=6
[0.699s][trace][jfr,system,parser] Constant: java.lang.Class[1613]
[0.700s][trace][jfr,system,parser] Constant: jdk.types.Package[281]
[0.700s][trace][jfr,system,parser] Constant: jdk.types.Module[7]
[0.700s][trace][jfr,system,parser] Constant: jdk.types.ClassLoader[13]
[0.700s][trace][jfr,system,parser] Constant: jdk.types.Method[3775]
[0.701s][trace][jfr,system,parser] Constant: jdk.types.Symbol[5470]
...
Each large checkpoint is about 400 kB.
The log can be reproduced like this:
$ jfr -J-Xlog:jfr+system+parser=trace --events Dummy recording.jfr
There could possibly be a similar problem where reference chains are recorded (cutoff > 0)
- backported by
-
JDK-8237902 OldObjectSample event creates unexpected amount of checkpoint data
- Resolved
-
JDK-8243616 OldObjectSample event creates unexpected amount of checkpoint data
- Resolved
- relates to
-
JDK-8231081 TestMetadataRetention fails due to missing symbol id
- Resolved
-
JDK-8281520 JFR: A wrong parameter is passed to the constructor of LeakKlassWriter
- Resolved
-
JDK-8231025 Incorrect method tag offset for big endian platform
- Closed
-
JDK-8236743 JFR: assert(klass != __null) failed: invariant in ObjectSampleCheckpoint::add_to_leakp_set
- Closed
(1 relates to)