diff --git a/db/db_impl/db_impl_open.cc b/db/db_impl/db_impl_open.cc index 2397d8ca72..6546a27c3a 100644 --- a/db/db_impl/db_impl_open.cc +++ b/db/db_impl/db_impl_open.cc @@ -442,19 +442,19 @@ Status DBImpl::Recover( assert(s.IsIOError()); return s; } - GetDbIdentityFromIdentityFile(&db_id_); - if (immutable_db_options_.write_dbid_to_manifest) { + s = GetDbIdentityFromIdentityFile(&db_id_); + if (immutable_db_options_.write_dbid_to_manifest && s.ok()) { VersionEdit edit; edit.SetDBId(db_id_); Options options; MutableCFOptions mutable_cf_options(options); versions_->db_id_ = db_id_; - versions_->LogAndApply(versions_->GetColumnFamilySet()->GetDefault(), + s = versions_->LogAndApply(versions_->GetColumnFamilySet()->GetDefault(), mutable_cf_options, &edit, &mutex_, nullptr, false); } } else { - SetIdentityFile(env_, dbname_, db_id_); + s = SetIdentityFile(env_, dbname_, db_id_); } if (immutable_db_options_.paranoid_checks && s.ok()) { @@ -474,16 +474,16 @@ Status DBImpl::Recover( s = InitPersistStatsColumnFamily(); } - // Initial max_total_in_memory_state_ before recovery logs. Log recovery - // may check this value to decide whether to flush. - max_total_in_memory_state_ = 0; - for (auto cfd : *versions_->GetColumnFamilySet()) { - auto* mutable_cf_options = cfd->GetLatestMutableCFOptions(); - max_total_in_memory_state_ += mutable_cf_options->write_buffer_size * - mutable_cf_options->max_write_buffer_number; - } - if (s.ok()) { + // Initial max_total_in_memory_state_ before recovery logs. Log recovery + // may check this value to decide whether to flush. + max_total_in_memory_state_ = 0; + for (auto cfd : *versions_->GetColumnFamilySet()) { + auto* mutable_cf_options = cfd->GetLatestMutableCFOptions(); + max_total_in_memory_state_ += mutable_cf_options->write_buffer_size * + mutable_cf_options->max_write_buffer_number; + } + SequenceNumber next_sequence(kMaxSequenceNumber); default_cf_handle_ = new ColumnFamilyHandleImpl( versions_->GetColumnFamilySet()->GetDefault(), this, &mutex_);