Repository: samza Updated Branches: refs/heads/master 94951bc81 -> e2335bd56
Fix for transient error failure -- concurrent evictions causing incorrectness Author: rmath...@linkedin.com <rmath...@linkedin.com> Reviewers: Jagadish <jagad...@apache.org> Closes #599 from rmatharu/bugfix Project: http://git-wip-us.apache.org/repos/asf/samza/repo Commit: http://git-wip-us.apache.org/repos/asf/samza/commit/e2335bd5 Tree: http://git-wip-us.apache.org/repos/asf/samza/tree/e2335bd5 Diff: http://git-wip-us.apache.org/repos/asf/samza/diff/e2335bd5 Branch: refs/heads/master Commit: e2335bd56efd709459e0514971e53eed84ef8f5f Parents: 94951bc Author: rmath...@linkedin.com <rmath...@linkedin.com> Authored: Tue Aug 7 17:39:04 2018 -0700 Committer: Jagadish <jvenkatra...@linkedin.com> Committed: Tue Aug 7 17:39:04 2018 -0700 ---------------------------------------------------------------------- samza-api/src/main/java/org/apache/samza/metrics/ListGauge.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/samza/blob/e2335bd5/samza-api/src/main/java/org/apache/samza/metrics/ListGauge.java ---------------------------------------------------------------------- diff --git a/samza-api/src/main/java/org/apache/samza/metrics/ListGauge.java b/samza-api/src/main/java/org/apache/samza/metrics/ListGauge.java index 545fd45..d0fb326 100644 --- a/samza-api/src/main/java/org/apache/samza/metrics/ListGauge.java +++ b/samza-api/src/main/java/org/apache/samza/metrics/ListGauge.java @@ -109,8 +109,9 @@ public class ListGauge<T> implements Metric { /** * Evicts entries from the elements list, based on the given item-size and durationThreshold. + * Concurrent eviction threads can cause incorrectness (when reading elements.size or elements.peek). */ - private void evict() { + private synchronized void evict() { this.evictBasedOnSize(); this.evictBasedOnTimestamp(); }