RFR: 8068451: Kitchensink fails with assert(_size >= sz) failed: Negative size

Coleen Phillimore coleen.phillimore at oracle.com
Mon Feb 9 17:38:29 UTC 2015

Summary: Need ThreadCritical lock around chunk pool cleaning and copying 
for snapshot

This change restores the TC lock around the code that frees chunks from 
the chunk pool.  NMT1 needed ThreadCritical lock to track malloc'ed 
memory, but NMT2 doesn't.  This lock is also used to protect the code 
that copies the running snapshot into a saved snapshot.  After the 
latter snapshot is created, NMT reporting adjusts the malloc'ed memory 
for chunks because this memory is already reported as the various 
arenas, so we don't want to double-count it.

Tested Kitchensink with NMT for three days with code to sleep during the 
snapshot copy.  This code reproduced the assertion 18x in about 8 hrs.  
(Took out the sleep).  Also, fixed some whitespace and typos in the 
execution path of the bug.  Also ran NMT tests.  Can't add a test, it's 

open webrev at http://cr.openjdk.java.net/~coleenp/8068451/
bug link https://bugs.openjdk.java.net/browse/JDK-8068451


More information about the hotspot-runtime-dev mailing list