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
noreg-hard.
open webrev at http://cr.openjdk.java.net/~coleenp/8068451/
bug link https://bugs.openjdk.java.net/browse/JDK-8068451
thanks,
Coleen
More information about the hotspot-runtime-dev
mailing list