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