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

Jon Masamitsu jon.masamitsu at oracle.com
Sat Nov 23 01:54:47 UTC 2013


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

http://cr.openjdk.java.net/~jmasa/8026303/webrev.00/

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.

http://cr.openjdk.java.net/~jmasa/8026303/webrev_cleanup.00/

Thanks.

Jon






More information about the hotspot-gc-dev mailing list