Galen O'Sullivan created GEODE-5314:
---------------------------------------
Summary: MBeanStatsMonitor child classes should use atomics
instead of volatiles to avoid data race
Key: GEODE-5314
URL: https://issues.apache.org/jira/browse/GEODE-5314
Project: Geode
Issue Type: Bug
Components: statistics
Reporter: Galen O'Sullivan
{{GcStatsMonitor}} has the following:
{code}
private volatile long collections = 0;
private volatile long collectionTime = 0;
{code}
<snip>
{code}
collections -=
statsMap.getOrDefault(StatsKey.VM_GC_STATS_COLLECTIONS,0).intValue();
collectionTime -=
statsMap.getOrDefault(StatsKey.VM_GC_STATS_COLLECTION_TIME,0).intValue();
{code}
Because these are volatile and not atomic fields, there will be a race
condition. Other subclasses of {{MBeanStatsMonitor}} also use volatiles:
AggregateRegionStatsMonitor, GatewaySenderOverflowMonitor,
MemberLevelDiskMonitor, VMStatsMonitor.
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)