Some integer values are written to jfr recordings using write_padded_at_offset<u4>() method. Their size in recording is always 4 bytes.
jfr tool reads all integer values by readInt() method, which doesn't take size into account.
For padded values greater than (1 << 28), jfr tool tries to read 5 bytes from recording and fails.
For example, the issue reproduces if jfr recording contains large stack trace pool. I came across a jfr recording of a real application whose stack trace pool size was 282334556.
The same problem is reproduced in jmc too.
jfr tool reads all integer values by readInt() method, which doesn't take size into account.
For padded values greater than (1 << 28), jfr tool tries to read 5 bytes from recording and fails.
For example, the issue reproduces if jfr recording contains large stack trace pool. I came across a jfr recording of a real application whose stack trace pool size was 282334556.
The same problem is reproduced in jmc too.
- duplicates
-
JDK-8298129 Let checkpoint event sizes grow beyond u4 limit
-
- Resolved
-
- relates to
-
JDK-8298129 Let checkpoint event sizes grow beyond u4 limit
-
- Resolved
-
- links to
-
Review openjdk/jdk/11289