diff --git a/db/db_impl/db_impl_compaction_flush.cc b/db/db_impl/db_impl_compaction_flush.cc index bd1a8e74f..8cb37484c 100644 --- a/db/db_impl/db_impl_compaction_flush.cc +++ b/db/db_impl/db_impl_compaction_flush.cc @@ -107,6 +107,13 @@ Status DBImpl::SyncClosedLogs(JobContext* job_context) { if (!s.ok()) { break; } + + if (immutable_db_options_.recycle_log_file_num > 0) { + s = log->Close(); + if (!s.ok()) { + break; + } + } } if (s.ok()) { s = directories_.GetWalDir()->Fsync(); diff --git a/db/db_impl/db_impl_open.cc b/db/db_impl/db_impl_open.cc index 69c9c4117..baa4fe707 100644 --- a/db/db_impl/db_impl_open.cc +++ b/db/db_impl/db_impl_open.cc @@ -555,12 +555,13 @@ Status DBImpl::RecoverLogFiles(const std::vector& log_numbers, bool stop_replay_for_corruption = false; bool flushed = false; uint64_t corrupted_log_number = kMaxSequenceNumber; + uint64_t min_log_number = MinLogNumberToKeep(); for (auto log_number : log_numbers) { - if (log_number < versions_->min_log_number_to_keep_2pc()) { + if (log_number < min_log_number) { ROCKS_LOG_INFO(immutable_db_options_.info_log, "Skipping log #%" PRIu64 " since it is older than min log to keep #%" PRIu64, - log_number, versions_->min_log_number_to_keep_2pc()); + log_number, min_log_number); continue; } // The previous incarnation may not have written any MANIFEST