summaryrefslogtreecommitdiffstats
path: root/third_party/leveldatabase
diff options
context:
space:
mode:
Diffstat (limited to 'third_party/leveldatabase')
-rw-r--r--third_party/leveldatabase/env_chromium.cc18
1 files changed, 12 insertions, 6 deletions
diff --git a/third_party/leveldatabase/env_chromium.cc b/third_party/leveldatabase/env_chromium.cc
index d4bb927..6ecdfb1 100644
--- a/third_party/leveldatabase/env_chromium.cc
+++ b/third_party/leveldatabase/env_chromium.cc
@@ -340,8 +340,9 @@ class ChromiumWritableFile : public WritableFile {
virtual Status Flush() {
Status result;
if (HANDLE_EINTR(fflush_unlocked(file_))) {
- result = Status::IOError(filename_, strerror(errno));
- uma_logger_->RecordErrorAt(kWritableFileFlush);
+ int saved_errno = errno;
+ result = Status::IOError(filename_, strerror(saved_errno));
+ uma_logger_->RecordSpecificError(kWritableFileFlush, saved_errno);
}
return result;
}
@@ -382,8 +383,9 @@ class ChromiumEnv : public Env, public UMALogger {
FILE* f = fopen_internal(fname.c_str(), "rb");
if (f == NULL) {
*result = NULL;
- RecordErrorAt(kNewSequentialFile);
- return Status::IOError(fname, strerror(errno));
+ int saved_errno = errno;
+ RecordSpecificError(kNewSequentialFile, saved_errno);
+ return Status::IOError(fname, strerror(saved_errno));
} else {
*result = new ChromiumSequentialFile(fname, f, this);
return Status::OK();
@@ -614,8 +616,9 @@ class ChromiumEnv : public Env, public UMALogger {
FILE* f = fopen_internal(fname.c_str(), "w");
if (f == NULL) {
*result = NULL;
- RecordErrorAt(kNewLogger);
- return Status::IOError(fname, strerror(errno));
+ int saved_errno = errno;
+ RecordSpecificError(kNewLogger, saved_errno);
+ return Status::IOError(fname, strerror(saved_errno));
} else {
if (!sync_parent(fname)) {
fclose(f);
@@ -730,6 +733,9 @@ void ChromiumEnv::InitHistograms(const std::string& uma_title) {
uma_name.append(".");
MakeErrnoHistogram(uma_name, kWritableFileAppend);
+ MakeErrnoHistogram(uma_name, kNewSequentialFile);
+ MakeErrnoHistogram(uma_name, kWritableFileFlush);
+ MakeErrnoHistogram(uma_name, kNewLogger);
MakePlatformFileErrorHistogram(uma_name, kNewRandomAccessFile);
MakePlatformFileErrorHistogram(uma_name, kLockFile);