-
Bug
-
Resolution: Fixed
-
P2
-
17, 21, 22
Issue | Fix Version | Assignee | Priority | Status | Resolution | Resolved In Build |
---|---|---|---|---|---|---|
JDK-8309931 | 21 | Markus Grönlund | P2 | Resolved | Fixed | b27 |
JDK-8309948 | 17.0.9-oracle | Joakim Nordström | P2 | Closed | Fixed | b01 |
JDK-8310714 | 17.0.9 | Aleksey Shipilev | P2 | Resolved | Fixed | b01 |
was a follow-up enhancement for improved performance and scalability for
With
Typically, this is not a problem because the string pool pressure must be so high as to fill more than 1 Mb of strings, each having a max size of 128 bytes, approximately 8192 unique event strings, within a 1-second window. Should that occur, the system will dynamically allocate new memory for the mspace, in what is called a "transient" buffer.
The bug is that the JFR Recorder Thread excises and deletes transient buffers in the JfrStringPool from the current epoch live lists, where this is only an allowed operation on previous epoch lists (for mutual exclusion). Another thread could be iterating the live list while the JFR Recorder Thread removes and deletes a node.
This fix fills in the missing parts done to JfrCheckpointManager as part of
In addition, it includes better memory reuse of JfrStringPool transient buffers because they always accommodate at least 512 kb of size. Previously, the buffer was retired immediately, even though there might be a lot of free space left. Now the transient buffers are not retired immediately but only when full, in the same manner as for "regular" preallocated buffers.
- backported by
-
JDK-8309931 Unsafe list operations in JfrStringPool
- Resolved
-
JDK-8310714 Unsafe list operations in JfrStringPool
- Resolved
-
JDK-8309948 Unsafe list operations in JfrStringPool
- Closed
- relates to
-
JDK-8226511 Implement JFR Event Streaming
- Resolved
-
JDK-8233705 Let artifact iteration running time be a function of incrementally tagged artifacts
- Resolved
- links to
-
Commit openjdk/jdk17u-dev/7c97df21
-
Commit openjdk/jdk21/ea4ab656
-
Commit openjdk/jdk/05f896a1
-
Review openjdk/jdk17u-dev/1439
-
Review openjdk/jdk21/12
-
Review openjdk/jdk/14426