From de28706dd2e5f8710691ea225f746ce612bf269e Mon Sep 17 00:00:00 2001 From: Muhammad Qureshi Date: Fri, 12 Jun 2020 18:33:38 -0700 Subject: [PATCH] Fix testValueMetric flake Don't skip buckets with MULTIPLE_SKIPPED_BUCKETS reason for pushed metric that is not diffed. Fixes: 156690892 Test: atest --rerun-until-failure=100 CtsStatsdHostTestCases: android.cts.statsd.metric.ValueMetricsTests#testValueMetriccts.statsd.metric.ValueMetricsTests#testValueMetric Change-Id: Ic14198d38ab63d99700a4df9e9e7ae04181f5139 --- cmds/statsd/src/metrics/ValueMetricProducer.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/cmds/statsd/src/metrics/ValueMetricProducer.cpp b/cmds/statsd/src/metrics/ValueMetricProducer.cpp index 8203f38de393a..9dcba7cad9a80 100644 --- a/cmds/statsd/src/metrics/ValueMetricProducer.cpp +++ b/cmds/statsd/src/metrics/ValueMetricProducer.cpp @@ -959,7 +959,10 @@ void ValueMetricProducer::flushCurrentBucketLocked(const int64_t& eventTimeNs, int64_t fullBucketEndTimeNs = getCurrentBucketEndTimeNs(); int64_t bucketEndTime = fullBucketEndTimeNs; int64_t numBucketsForward = calcBucketsForwardCount(eventTimeNs); - if (numBucketsForward > 1) { + + // Skip buckets if this is a pulled metric or a pushed metric that is diffed. + if (numBucketsForward > 1 && (mIsPulled || mUseDiff)) { + VLOG("Skipping forward %lld buckets", (long long)numBucketsForward); StatsdStats::getInstance().noteSkippedForwardBuckets(mMetricId); // Something went wrong. Maybe the device was sleeping for a long time. It is better