Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1946)

Unified Diff: chromecast/crash/linux/synchronized_minidump_manager.cc

Issue 1310313004: [Chromecast] Move SynchronizedMinidumpManager ratelimit logic to child classes. (Closed) Base URL: https://chromium.googlesource.com/chromium/src@master
Patch Set: Clarify comment on test functions. Created 5 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chromecast/crash/linux/synchronized_minidump_manager.cc
diff --git a/chromecast/crash/linux/synchronized_minidump_manager.cc b/chromecast/crash/linux/synchronized_minidump_manager.cc
index a3322124bd5b4c6d2daed8f6f719eec6ed745162..edde6a7171f5e076052b01430771c5a13c7f2b1b 100644
--- a/chromecast/crash/linux/synchronized_minidump_manager.cc
+++ b/chromecast/crash/linux/synchronized_minidump_manager.cc
@@ -122,16 +122,6 @@ int SetRatelimitPeriodDumps(base::Value* metadata, int period_dumps) {
return 0;
}
-// Increment the number of dumps in the current ratelimit period in deserialized
-// |metadata| by |increment|. Returns 0 on success, < 0 on error.
-int IncrementCurrentPeriodDumps(base::Value* metadata, int increment) {
- DCHECK_GE(increment, 0);
- int last_dumps = GetRatelimitPeriodDumps(metadata);
- RCHECK(last_dumps >= 0, -1);
-
- return SetRatelimitPeriodDumps(metadata, last_dumps + increment);
-}
-
// Returns true if |metadata| contains valid metadata, false otherwise.
bool ValidateMetadata(base::Value* metadata) {
RCHECK(metadata, false);
@@ -147,8 +137,6 @@ bool ValidateMetadata(base::Value* metadata) {
} // namespace
-const int SynchronizedMinidumpManager::kMaxLockfileDumps = 5;
-
// One day
const int SynchronizedMinidumpManager::kRatelimitPeriodSeconds = 24 * 3600;
const int SynchronizedMinidumpManager::kRatelimitPeriodMaxDumps = 100;
@@ -338,12 +326,6 @@ int SynchronizedMinidumpManager::AddEntryToLockFile(const DumpInfo& dump_info) {
return -1;
}
- if (!CanWriteDumps(1)) {
- LOG(ERROR) << "Can't Add Dump: Ratelimited";
- return -1;
- }
-
- IncrementCurrentPeriodDumps(metadata_.get(), 1);
dumps_->Append(dump_info.GetAsValue());
return 0;
@@ -391,14 +373,15 @@ int SynchronizedMinidumpManager::SetCurrentDumps(
return 0;
}
-bool SynchronizedMinidumpManager::CanWriteDumps(int num_dumps) {
- const auto dumps(GetDumps());
+int SynchronizedMinidumpManager::IncrementNumDumpsInCurrentPeriod() {
+ DCHECK(metadata_);
+ int last_dumps = GetRatelimitPeriodDumps(metadata_.get());
+ RCHECK(last_dumps >= 0, -1);
- // If no more dumps can be written, return false.
- if (static_cast<int>(dumps.size()) + num_dumps > kMaxLockfileDumps)
- return false;
+ return SetRatelimitPeriodDumps(metadata_.get(), last_dumps + 1);
+}
- // If too many dumps have been written recently, return false.
+bool SynchronizedMinidumpManager::CanUploadDump() {
time_t cur_time = time(nullptr);
time_t period_start = GetRatelimitPeriodStart(metadata_.get());
int period_dumps_count = GetRatelimitPeriodDumps(metadata_.get());
@@ -417,7 +400,7 @@ bool SynchronizedMinidumpManager::CanWriteDumps(int num_dumps) {
SetRatelimitPeriodDumps(metadata_.get(), period_dumps_count);
}
- return period_dumps_count + num_dumps <= kRatelimitPeriodMaxDumps;
+ return period_dumps_count < kRatelimitPeriodMaxDumps;
}
} // namespace chromecast

Powered by Google App Engine
This is Rietveld 408576698