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

David Holmes david.holmes at oracle.com
Tue Nov 15 06:35:05 UTC 2011


Hi John,

On 15/11/2011 4:46 AM, John Cuthbertson wrote:
> 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/.

In the original code the pushNotification is conditional on 
recordPostGCUsage, but you've removed that guard by moving the code.

David
-----

> 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