JDK-8026784 : Error message in AdaptiveFreeList::verify_stats is wrong
  • Type: Bug
  • Component: hotspot
  • Sub-Component: gc
  • Affected Version: hs25
  • Priority: P4
  • Status: Resolved
  • Resolution: Fixed
  • Submitted: 2013-10-17
  • Updated: 2015-01-21
  • Resolved: 2014-05-06
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 8 JDK 9
8u40Fixed 9 b14Fixed
Related Reports
Relates :  
Description
The AdaptiveFreeList<Chunk>::verify_stats method contains the following err_msg:

         err_msg("FreeList " PTR_FORMAT " of size " SIZE_FORMAT
                 " violates Conservation Principle: "
                 "prev_sweep(" SIZE_FORMAT ")"
                 " + split_births(" SIZE_FORMAT ")"
                 " + coal_births(" SIZE_FORMAT ") + 1 >= "
                 " split_deaths(" SIZE_FORMAT ")"
                 " coal_deaths(" SIZE_FORMAT ")"
                 " + count(" SSIZE_FORMAT ")",
                 this, size(), _allocation_stats.prev_sweep(), _allocation_stats.split_births(),
                 _allocation_stats.split_births(), _allocation_stats.split_deaths(),
                 _allocation_stats.coal_deaths(), count()));

The argument to coal_births is split_births, which will cause the error message in the assert to be wrong.
Comments
This bug make its more complicated to debug issues such as JDK-8026303.
17-10-2013

Impact = Low, since the error message is only printed in debug builds Likelihood = High, since the error message will be wrong each time it is printed Workaround = High, there is no way to get this information from elsewhere Priority: LHH => P4
17-10-2013