Request for review (small) 8026303: CMS: JVM intermittently crashes with "FreeList of size 258 violates Con,servation Principle" assert
jon.masamitsu at oracle.com
Sat Nov 23 01:54:47 UTC 2013
8026303: CMS: JVM intermittently crashes with "FreeList of size 258
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
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).
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.
More information about the hotspot-gc-dev