JDK-8007003 : ParNew sends the heap summary too early
  • Type: Bug
  • Component: hotspot
  • Sub-Component: gc
  • Priority: P5
  • Status: Resolved
  • Resolution: Fixed
  • Submitted: 2013-01-28
  • Updated: 2013-06-26
  • Resolved: 2013-03-12
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.

To download the current JDK release, click here.
JDK 7 Other
7u40Fixed hs24Fixed
If there is a risk for promotion failure then ParNew can decide to do an early exit. In ParNew::collect, the heap summary event is sent before this check, which means that there might be a heap summary without a corresponding garbage collection event.

I = low
L = medium
w = high
ILW => P5
Could be verified with: closed/com/oracle/jfr/gc/TestHeapSummaryEventParNewCMS.java closed/com/oracle/jfr/gc/TestHeapSummaryEventParNewSerial.java

The easy fix would be not to count the early exited GC. This would also be the correct fix. Unfortunately this is not a quick fix since the MX beans counts these as GCs (which is a bug in itself). A more correct solution would be something like having should_collect() detecting the promotion failed condition and say no to GC.