Commit 98151dc3 authored by Brian White's avatar Brian White Committed by Commit Bot

Validate math when creating histogram buckets.

This is a further attempt to determine why two subsequent calls to this
method with the same parameters sometimes produce different outputs.

Bug: 836238
Change-Id: I3960fe0bd27976ae4678a4f96bad61870c22342c
Reviewed-on: https://chromium-review.googlesource.com/c/1314648Reviewed-by: default avatarAlexei Svitkine <asvitkine@chromium.org>
Reviewed-by: default avatarBruce Dawson <brucedawson@chromium.org>
Commit-Queue: Brian White <bcwhite@chromium.org>
Cr-Commit-Position: refs/heads/master@{#605473}
parent f2f37f33
...@@ -420,6 +420,9 @@ void Histogram::InitializeBucketRanges(Sample minimum, ...@@ -420,6 +420,9 @@ void Histogram::InitializeBucketRanges(Sample minimum,
size_t bucket_count = ranges->bucket_count(); size_t bucket_count = ranges->bucket_count();
// Temporary for https://crbug.com/836238 // Temporary for https://crbug.com/836238
double log_max_copy = log_max;
debug::Alias(&log_max_copy);
CHECK_EQ(maximum, static_cast<Sample>(std::round(exp(log_max_copy))));
uint32_t checksum = static_cast<uint32_t>(bucket_count + 1); uint32_t checksum = static_cast<uint32_t>(bucket_count + 1);
checksum = Crc32(checksum, 0); checksum = Crc32(checksum, 0);
checksum = Crc32(checksum, current); checksum = Crc32(checksum, current);
...@@ -448,6 +451,9 @@ void Histogram::InitializeBucketRanges(Sample minimum, ...@@ -448,6 +451,9 @@ void Histogram::InitializeBucketRanges(Sample minimum,
ranges->ResetChecksum(); ranges->ResetChecksum();
checksum = Crc32(checksum, HistogramBase::kSampleType_MAX); checksum = Crc32(checksum, HistogramBase::kSampleType_MAX);
CHECK_EQ(checksum, ranges->checksum()); CHECK_EQ(checksum, ranges->checksum());
log_max_copy = log_max;
debug::Alias(&log_max_copy);
CHECK_EQ(maximum, static_cast<Sample>(std::round(exp(log_max_copy))));
} }
// static // static
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment