JDK-8221475 : Unnecessary safe point when using OldObject sample events with cutoff=0
Type:Bug
Component:hotspot
Sub-Component:jfr
Affected Version:13,14
Priority:P4
Status:Closed
Resolution:Duplicate
Submitted:2019-03-26
Updated:2020-02-11
Resolved:2019-09-02
The Version table provides details related to the release that this issue/RFE will be addressed.
Unresolved : Release in which this issue/RFE will be addressed. Resolved: Release in which this issue/RFE has been resolved. Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availability Release.
When using the old object sample events, there is an unnecessary safe pointing vm operation (GC_HeapInspection) happening when the memory-leak-detection-cutoff=0.
Comments
Very nice! Thank you!
02-08-2019
Updating ILW based on the feedback: ILW = MLM = P4
11-07-2019
This is still a bit worrying. For someone wanting to do short recording every once in a while, but still have the oldobjectsample event enabled, there will be extra safe points. For some customers this may be enough to turn it off.
27-03-2019
RT Triage: This is a P5. We will not address this issue.
27-03-2019
ILW: LMM -> p5
I: Low - slight pause/performance drop
L: M - it will always happen with this events and option
W: M: do not use OldObjectSample
27-03-2019
Not saying it shouldn't be fixed, but it may be worth mentioning that the time in safepoint is really short.
The JVM traverses a linked list and emits 50-100 events.It shouldn't take more than a few microseconds, even though bringing the JVM to a safepoint is more expensive, which happens all the time (deoptimizations, revokebias etc). The JVM doesn't iterate/inspect the heap if cutoff=0, so the name of the safepoint is misleading.
Also, the OldObjectSample event is only emitted when a recording ends, not at every chunk rotation.