This is an automated email from the ASF dual-hosted git repository. mivanac pushed a commit to branch develop in repository https://gitbox.apache.org/repos/asf/geode.git
The following commit(s) were added to refs/heads/develop by this push: new 6c1e3d7 GEODE-8191: update flaky test (#6427) 6c1e3d7 is described below commit 6c1e3d700e1a075bff08b2f81f88387c8a05e489 Author: Mario Ivanac <48509724+miva...@users.noreply.github.com> AuthorDate: Mon May 24 11:33:04 2021 +0200 GEODE-8191: update flaky test (#6427) * GEODE-8191: solution for failing test * GEODE-8191: update after comments --- .../org/apache/geode/internal/statistics/ResourceInstance.java | 10 ++++++++++ .../org/apache/geode/internal/statistics/SampleCollector.java | 4 +++- .../apache/geode/internal/statistics/StatArchiveWriter.java | 1 + .../org/apache/geode/internal/statistics/ValueMonitor.java | 1 + .../apache/geode/internal/statistics/SampleCollectorTest.java | 2 +- 5 files changed, 16 insertions(+), 2 deletions(-) diff --git a/geode-core/src/main/java/org/apache/geode/internal/statistics/ResourceInstance.java b/geode-core/src/main/java/org/apache/geode/internal/statistics/ResourceInstance.java index c83b051..2eb14db 100755 --- a/geode-core/src/main/java/org/apache/geode/internal/statistics/ResourceInstance.java +++ b/geode-core/src/main/java/org/apache/geode/internal/statistics/ResourceInstance.java @@ -33,11 +33,13 @@ public class ResourceInstance { private long[] previousStatValues = null; private long[] latestStatValues = null; private int[] updatedStats = null; + private boolean statValuesNotified; public ResourceInstance(int id, Statistics statistics, ResourceType type) { this.id = id; this.statistics = statistics; this.type = type; + this.statValuesNotified = false; } public int getId() { @@ -52,6 +54,14 @@ public class ResourceInstance { return this.type; } + public boolean getStatValuesNotified() { + return this.statValuesNotified; + } + + public void setStatValuesNotified(boolean notified) { + this.statValuesNotified = notified; + } + public Number getStatValue(StatisticDescriptor sd) { return this.statistics.get(sd); } diff --git a/geode-core/src/main/java/org/apache/geode/internal/statistics/SampleCollector.java b/geode-core/src/main/java/org/apache/geode/internal/statistics/SampleCollector.java index 3bc6c79..49ecea0 100755 --- a/geode-core/src/main/java/org/apache/geode/internal/statistics/SampleCollector.java +++ b/geode-core/src/main/java/org/apache/geode/internal/statistics/SampleCollector.java @@ -274,7 +274,9 @@ public class SampleCollector { } for (ResourceInstance ri : updatedResources) { - ri.setPreviousStatValues(ri.getLatestStatValues()); + if (ri.getStatValuesNotified()) { + ri.setPreviousStatValues(ri.getLatestStatValues()); + } } } diff --git a/geode-core/src/main/java/org/apache/geode/internal/statistics/StatArchiveWriter.java b/geode-core/src/main/java/org/apache/geode/internal/statistics/StatArchiveWriter.java index eb1dbea..1c65ce0 100644 --- a/geode-core/src/main/java/org/apache/geode/internal/statistics/StatArchiveWriter.java +++ b/geode-core/src/main/java/org/apache/geode/internal/statistics/StatArchiveWriter.java @@ -508,6 +508,7 @@ public class StatArchiveWriter implements StatArchiveFormat, SampleHandler { } writeTimeStamp(nanosTimeStamp); for (ResourceInstance ri : resourceInstances) { + ri.setStatValuesNotified(true); writeSample(ri); } writeResourceInst(ILLEGAL_RESOURCE_INST_ID); diff --git a/geode-core/src/main/java/org/apache/geode/internal/statistics/ValueMonitor.java b/geode-core/src/main/java/org/apache/geode/internal/statistics/ValueMonitor.java index f3b6f89..4ee9c71 100755 --- a/geode-core/src/main/java/org/apache/geode/internal/statistics/ValueMonitor.java +++ b/geode-core/src/main/java/org/apache/geode/internal/statistics/ValueMonitor.java @@ -98,6 +98,7 @@ public class ValueMonitor extends StatisticsMonitor { if (this.statistics.contains(resource.getStatistics())) { ResourceType resourceType = resource.getResourceType(); StatisticDescriptor[] sds = resourceType.getStatisticDescriptors(); + resource.setStatValuesNotified(true); int[] updatedStats = resource.getUpdatedStats(); for (int i = 0; i < updatedStats.length; i++) { int idx = updatedStats[i]; diff --git a/geode-core/src/test/java/org/apache/geode/internal/statistics/SampleCollectorTest.java b/geode-core/src/test/java/org/apache/geode/internal/statistics/SampleCollectorTest.java index ebbd8ba..4913cb4 100755 --- a/geode-core/src/test/java/org/apache/geode/internal/statistics/SampleCollectorTest.java +++ b/geode-core/src/test/java/org/apache/geode/internal/statistics/SampleCollectorTest.java @@ -210,7 +210,7 @@ public class SampleCollectorTest { ResourceInstance resourceInstance = allocatedResourceInstanceInfo.getResourceInstance(); assertNotNull(resourceInstance); assertEquals(0, resourceInstance.getId()); - assertEquals(0, resourceInstance.getUpdatedStats().length); + assertEquals(1, resourceInstance.getUpdatedStats().length); assertEquals(1, resourceInstance.getLatestStatValues().length); // TODO: is this correct? Statistics statistics = resourceInstance.getStatistics(); assertNotNull(statistics);