RFR (XXS): 7110173: GCNotifier::pushNotification publishes stale data.

John Cuthbertson john.cuthbertson at oracle.com
Mon Nov 14 18:46:45 UTC 2011


Hi Everyone,

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.

Thanks,

JohnC



More information about the hotspot-gc-dev mailing list