Index: third_party/leveldatabase/env_chromium.cc |
diff --git a/third_party/leveldatabase/env_chromium.cc b/third_party/leveldatabase/env_chromium.cc |
index 42bdb42269373db25644e415dc94d8b5e907741b..e625887545336253e720716002b1e6b39a2b0fea 100644 |
--- a/third_party/leveldatabase/env_chromium.cc |
+++ b/third_party/leveldatabase/env_chromium.cc |
@@ -15,6 +15,7 @@ |
#include "base/metrics/histogram.h" |
#include "base/process/process_metrics.h" |
#include "base/stl_util.h" |
+#include "base/strings/stringprintf.h" |
#include "base/strings/utf_string_conversions.h" |
#include "base/trace_event/trace_event.h" |
#include "third_party/leveldatabase/chromium_logger.h" |
@@ -326,6 +327,7 @@ class IDBEnv : public ChromiumEnv { |
public: |
IDBEnv() : ChromiumEnv() { |
name_ = "LevelDBEnv.IDB"; |
+ uma_ioerror_base_name_ = name_ + ".IOError.BFE"; |
make_backup_ = true; |
} |
}; |
@@ -396,7 +398,7 @@ Status MakeIOError(Slice filename, |
base::File::Error error) { |
DCHECK_LT(error, 0); |
char buf[512]; |
- snprintf(buf, sizeof(buf), "%s (ChromeMethodPFE: %d::%s::%d)", |
+ snprintf(buf, sizeof(buf), "%s (ChromeMethodBFE: %d::%s::%d)", |
message.c_str(), method, MethodIDToString(method), -error); |
return Status::IOError(filename, buf); |
} |
@@ -422,13 +424,13 @@ ErrorParsingResult ParseMethodAndError(const leveldb::Status& status, |
} |
int parsed_error; |
if (RE2::PartialMatch(status_string.c_str(), |
- "ChromeMethodPFE: (\\d+)::.*::(\\d+)", &method, |
+ "ChromeMethodBFE: (\\d+)::.*::(\\d+)", &method, |
&parsed_error)) { |
*method_param = static_cast<MethodID>(method); |
*error = static_cast<base::File::Error>(-parsed_error); |
DCHECK_LT(*error, base::File::FILE_OK); |
DCHECK_GT(*error, base::File::FILE_ERROR_MAX); |
- return METHOD_AND_PFE; |
+ return METHOD_AND_BFE; |
} |
return NONE; |
} |
@@ -507,7 +509,7 @@ bool IndicatesDiskFull(const leveldb::Status& status) { |
base::File::Error error = base::File::FILE_OK; |
leveldb_env::ErrorParsingResult result = |
leveldb_env::ParseMethodAndError(status, &method, &error); |
- return (result == leveldb_env::METHOD_AND_PFE && |
+ return (result == leveldb_env::METHOD_AND_BFE && |
static_cast<base::File::Error>(error) == |
base::File::FILE_ERROR_NO_SPACE); |
} |
@@ -525,6 +527,7 @@ ChromiumEnv::ChromiumEnv() |
bgsignal_(&mu_), |
started_bgthread_(false), |
kMaxRetryTimeMillis(1000) { |
+ uma_ioerror_base_name_ = name_ + ".IOError.BFE"; |
} |
ChromiumEnv::~ChromiumEnv() { |
@@ -951,9 +954,9 @@ void ChromiumEnv::RecordBackupResult(bool result) const { |
base::HistogramBase* ChromiumEnv::GetOSErrorHistogram(MethodID method, |
int limit) const { |
- std::string uma_name(name_); |
- // TODO(dgrogan): This is probably not the best way to concatenate strings. |
- uma_name.append(".IOError.").append(MethodIDToString(method)); |
+ std::string uma_name; |
+ base::StringAppendF(&uma_name, "%s.%s", uma_ioerror_base_name_.c_str(), |
+ MethodIDToString(method)); |
return base::LinearHistogram::FactoryGet(uma_name, 1, limit, limit + 1, |
base::Histogram::kUmaTargetedHistogramFlag); |
} |