Request for review (small) 8026303: CMS: JVM intermittently crashes with "FreeList of size 258 violates Con, servation Principle" assert

Srinivas Ramakrishna ysr1729 at
Sat Nov 23 22:58:25 UTC 2013

On Fri, Nov 22, 2013 at 11:01 PM, Jon Masamitsu <jon.masamitsu at>wrote:

> I'm withdrawing this review request until further notice.

Jon, I know you withdrew to give this further thought, but IIRC, the thing
to do here might be
to record the return as a split birth, rather than to fix up the split
At least that was my mental model for the demand tracking.

Will look at yr changes when you provide a new webrev. At this time I only
read yr descripition below, but
did not look at the webrev.

-- ramki

> On 11/22/2013 5:54 PM, Jon Masamitsu wrote:
>> 8026303: CMS: JVM intermittently crashes with "FreeList of size 258
>> violates Con
>> servation Principle" assert
>> CompactibleFreeListSpace:: par_get_chunk_of_blocks() replenishes
>> the free list of a given size by splitting a larger chunk. The code
>> searched for a block that was large enough to split. If a large enough
>> chunk was found it was removed from the dictionary and a split death
>> was recorded. If the remainder after splitting would be too small, that
>> block was returned to the dictionary but forgot to fix the split death
>> accounting
>> The fix was to move the split death accounting to the point where
>> it was known that the chunk would not be put back into the dictionary.
>> There was also code moved which did the accounting for the
>> _unallocated_block (updated it to account for the allocation which
>> could change _unallocated_block).
>> The fix
>> A small amount of code refactoring was done and is in
>> a second webrev (along with the fix above).  Both changes
>> will be put back together.
>> Thanks.
>> Jon
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <>

More information about the hotspot-gc-dev mailing list