summaryrefslogtreecommitdiff
path: root/db/version_builder.cc
diff options
context:
space:
mode:
authorsdong <siying.d@fb.com>2015-10-19 13:07:05 -0700
committersdong <siying.d@fb.com>2015-10-19 17:31:13 -0700
commit6d6776f6b8b093a1ad24871e4ab589e441edbca3 (patch)
tree42e3e457511d5f3b316acfc32db04da2eede0000 /db/version_builder.cc
parent90228bb0888e421d2809cfb64ade7cb351e008ac (diff)
Log more information for the add file with overlapping range failure
Summary: crash_test sometimes fails, hitting the add file overlapping assert. Add information in info logs help us to find the bug. Test Plan: Run all test suites. Do some manual tests to make sure printing is correct. Reviewers: kradhakrishnan, yhchiang, anthony, IslamAbdelRahman, rven, igor Reviewed By: igor Subscribers: leveldb, dhruba Differential Revision: https://reviews.facebook.net/D49017
Diffstat (limited to 'db/version_builder.cc')
-rw-r--r--db/version_builder.cc11
1 files changed, 7 insertions, 4 deletions
diff --git a/db/version_builder.cc b/db/version_builder.cc
index 7444bfc5c..7e6358e5f 100644
--- a/db/version_builder.cc
+++ b/db/version_builder.cc
@@ -82,6 +82,7 @@ class VersionBuilder::Rep {
};
const EnvOptions& env_options_;
+ Logger* info_log_;
TableCache* table_cache_;
VersionStorageInfo* base_vstorage_;
LevelState* levels_;
@@ -89,9 +90,10 @@ class VersionBuilder::Rep {
FileComparator level_nonzero_cmp_;
public:
- Rep(const EnvOptions& env_options, TableCache* table_cache,
+ Rep(const EnvOptions& env_options, Logger* info_log, TableCache* table_cache,
VersionStorageInfo* base_vstorage)
: env_options_(env_options),
+ info_log_(info_log),
table_cache_(table_cache),
base_vstorage_(base_vstorage) {
levels_ = new LevelState[base_vstorage_->num_levels()];
@@ -335,15 +337,16 @@ class VersionBuilder::Rep {
if (levels_[level].deleted_files.count(f->fd.GetNumber()) > 0) {
// File is deleted: do nothing
} else {
- vstorage->AddFile(level, f);
+ vstorage->AddFile(level, f, info_log_);
}
}
};
VersionBuilder::VersionBuilder(const EnvOptions& env_options,
TableCache* table_cache,
- VersionStorageInfo* base_vstorage)
- : rep_(new Rep(env_options, table_cache, base_vstorage)) {}
+ VersionStorageInfo* base_vstorage,
+ Logger* info_log)
+ : rep_(new Rep(env_options, info_log, table_cache, base_vstorage)) {}
VersionBuilder::~VersionBuilder() { delete rep_; }
void VersionBuilder::CheckConsistency(VersionStorageInfo* vstorage) {
rep_->CheckConsistency(vstorage);