Fix a test failure when built with ASSERT_STATUS_CHECKED=1 (#8075)

Summary:
As title.
Test plan
ASSERT_STATUS_CHECKED=1 make -j20 backupable_db_test error_handler_fs_test
./backupable_db_test
./error_handler_fs_test

Pull Request resolved: https://github.com/facebook/rocksdb/pull/8075

Reviewed By: zhichao-cao

Differential Revision: D27173832

Pulled By: riversand963

fbshipit-source-id: 37dac50f7c89127804ff2572abddd4174642de30
main
Yanqin Jin 4 years ago committed by Facebook GitHub Bot
parent 576cff11da
commit 7ee41a5d25
  1. 6
      db/db_impl/db_impl_compaction_flush.cc
  2. 4
      utilities/backupable/backupable_db_test.cc

@ -182,7 +182,6 @@ Status DBImpl::FlushMemTableToOutputFile(
// other column families are missing. // other column families are missing.
// SyncClosedLogs() may unlock and re-lock the db_mutex. // SyncClosedLogs() may unlock and re-lock the db_mutex.
log_io_s = SyncClosedLogs(job_context); log_io_s = SyncClosedLogs(job_context);
s = log_io_s;
if (!log_io_s.ok() && !log_io_s.IsShutdownInProgress() && if (!log_io_s.ok() && !log_io_s.IsShutdownInProgress() &&
!log_io_s.IsColumnFamilyDropped()) { !log_io_s.IsColumnFamilyDropped()) {
error_handler_.SetBGError(log_io_s, BackgroundErrorReason::kFlush); error_handler_.SetBGError(log_io_s, BackgroundErrorReason::kFlush);
@ -190,6 +189,7 @@ Status DBImpl::FlushMemTableToOutputFile(
} else { } else {
TEST_SYNC_POINT("DBImpl::SyncClosedLogs:Skip"); TEST_SYNC_POINT("DBImpl::SyncClosedLogs:Skip");
} }
s = log_io_s;
// If the log sync failed, we do not need to pick memtable. Otherwise, // If the log sync failed, we do not need to pick memtable. Otherwise,
// num_flush_not_started_ needs to be rollback. // num_flush_not_started_ needs to be rollback.
@ -431,7 +431,6 @@ Status DBImpl::AtomicFlushMemTablesToOutputFiles(
// TODO (yanqin) investigate whether we should sync the closed logs for // TODO (yanqin) investigate whether we should sync the closed logs for
// single column family case. // single column family case.
log_io_s = SyncClosedLogs(job_context); log_io_s = SyncClosedLogs(job_context);
s = log_io_s;
if (!log_io_s.ok() && !log_io_s.IsShutdownInProgress() && if (!log_io_s.ok() && !log_io_s.IsShutdownInProgress() &&
!log_io_s.IsColumnFamilyDropped()) { !log_io_s.IsColumnFamilyDropped()) {
if (total_log_size_ > 0) { if (total_log_size_ > 0) {
@ -442,6 +441,7 @@ Status DBImpl::AtomicFlushMemTablesToOutputFiles(
} }
} }
} }
s = log_io_s;
// exec_status stores the execution status of flush_jobs as // exec_status stores the execution status of flush_jobs as
// <bool /* executed */, Status /* status code */> // <bool /* executed */, Status /* status code */>
@ -541,7 +541,7 @@ Status DBImpl::AtomicFlushMemTablesToOutputFiles(
} }
} }
for (int i = 0; i != num_cfs; ++i) { for (int i = 0; i != num_cfs; ++i) {
if (exec_status[i].first && exec_status[i].second.ok()) { if (exec_status[i].second.ok() && exec_status[i].first) {
auto& mems = jobs[i]->GetMemTables(); auto& mems = jobs[i]->GetMemTables();
cfds[i]->imm()->RollbackMemtableFlush(mems, cfds[i]->imm()->RollbackMemtableFlush(mems,
file_meta[i].fd.GetNumber()); file_meta[i].fd.GetNumber());

@ -976,7 +976,7 @@ TEST_F(BackupableDBTest, FileCollision) {
// If the db directory has been cleaned up, it is sensitive to file // If the db directory has been cleaned up, it is sensitive to file
// collision. // collision.
DestroyDB(dbname_, options_); ASSERT_OK(DestroyDB(dbname_, options_));
// open with old backup // open with old backup
OpenDBAndBackupEngine(false /* destroy_old_data */, false /* dummy */, OpenDBAndBackupEngine(false /* destroy_old_data */, false /* dummy */,
@ -995,7 +995,7 @@ TEST_F(BackupableDBTest, FileCollision) {
CloseDBAndBackupEngine(); CloseDBAndBackupEngine();
// delete old data // delete old data
DestroyDB(dbname_, options_); ASSERT_OK(DestroyDB(dbname_, options_));
} }
} }

Loading…
Cancel
Save