RFR (XXS): 7110173: GCNotifier::pushNotification publishes stale data.
john.cuthbertson at oracle.com
Mon Nov 14 10:46:45 PST 2011
Can I have a couple of volnteers to review the fix for this CR? The
webrev can be found at: http://cr.openjdk.java.net/~johnc/7110173/webrev.0/.
The issue here was that the routine GCNotifier::pushNotification(),
which uses GC data held in GCMemoryManager::_last_gc_stat, was being
called before the values in GCMemoryManager::_last_gc_stat were being
populated for the current GC. As a result the JVM could pass
uninitialized or stale data to a listener. The fix is to move the call
to GCNotifier::pushNotification() after the code that populates
GCMemoryManager::_last_gc_stat. I also modified the GCStatInfo
constructor to fully initialize instances of that class.
Testing: The supplied test case on Windows, a crafted test case on
Solaris, and the nsk GC tests.
More information about the hotspot-gc-dev