diff --git a/db/compaction.cc b/db/compaction.cc index 8faa89f67..8bb4f9c61 100644 --- a/db/compaction.cc +++ b/db/compaction.cc @@ -197,6 +197,7 @@ static void FileSizeSummary(unsigned long long sz, char* output, int len) { static int InputSummary(std::vector& files, char* output, int len) { + *output = '\0'; int write = 0; for (unsigned int i = 0; i < files.size(); i++) { int sz = len - write; @@ -233,9 +234,7 @@ void Compaction::Summary(char* output, int len) { return; } - if (inputs_[1].size()) { - write += InputSummary(inputs_[1], output+write, len-write); - } + write += InputSummary(inputs_[1], output+write, len-write); if (write < 0 || write >= len) { return; } diff --git a/db/compaction_picker.cc b/db/compaction_picker.cc index d585e41ec..e1b61d7e7 100644 --- a/db/compaction_picker.cc +++ b/db/compaction_picker.cc @@ -178,7 +178,11 @@ bool CompactionPicker::ExpandWhileOverlapping(Compaction* c) { // If, after the expansion, there are files that are already under // compaction, then we must drop/cancel this compaction. int parent_index = -1; - if (FilesInCompaction(c->inputs_[0]) || + if (c->inputs_[0].empty()) { + Log(options_->info_log, + "ExpandWhileOverlapping() failure because zero input files"); + } + if (c->inputs_[0].empty() || FilesInCompaction(c->inputs_[0]) || (c->level() != c->output_level() && ParentRangeInCompaction(c->input_version_, &smallest, &largest, level, &parent_index))) {