Fix flaky EventListenerTest.DisableBGCompaction (#9400)
Summary: Wasn't able to easily reproduce error, but easy to see a race condition between TestFlushListener::OnFlushCompleted and DBTestBase::Close(), which frees CF handles before closing DB. Pull Request resolved: https://github.com/facebook/rocksdb/pull/9400 Test Plan: CI etc. Reviewed By: riversand963 Differential Revision: D33645134 Pulled By: pdillinger fbshipit-source-id: d0ec914cc43c9e14f53da633876b95b61995138d
This commit is contained in:
parent
cd50078ae0
commit
8064a3ac31
@ -159,7 +159,7 @@ Status DBImpl::TEST_AtomicFlushMemTables(
|
|||||||
Status DBImpl::TEST_WaitForBackgroundWork() {
|
Status DBImpl::TEST_WaitForBackgroundWork() {
|
||||||
InstrumentedMutexLock l(&mutex_);
|
InstrumentedMutexLock l(&mutex_);
|
||||||
WaitForBackgroundWork();
|
WaitForBackgroundWork();
|
||||||
return Status::OK();
|
return error_handler_.GetBGError();
|
||||||
}
|
}
|
||||||
|
|
||||||
Status DBImpl::TEST_WaitForFlushMemTable(ColumnFamilyHandle* column_family) {
|
Status DBImpl::TEST_WaitForFlushMemTable(ColumnFamilyHandle* column_family) {
|
||||||
|
@ -515,6 +515,9 @@ TEST_F(EventListenerTest, DisableBGCompaction) {
|
|||||||
db_->GetColumnFamilyMetaData(handles_[1], &cf_meta);
|
db_->GetColumnFamilyMetaData(handles_[1], &cf_meta);
|
||||||
}
|
}
|
||||||
ASSERT_GE(listener->slowdown_count, kSlowdownTrigger * 9);
|
ASSERT_GE(listener->slowdown_count, kSlowdownTrigger * 9);
|
||||||
|
// We don't want the listener executing during DBTestBase::Close() due to
|
||||||
|
// race on handles_.
|
||||||
|
ASSERT_OK(dbfull()->TEST_WaitForBackgroundWork());
|
||||||
}
|
}
|
||||||
|
|
||||||
class TestCompactionReasonListener : public EventListener {
|
class TestCompactionReasonListener : public EventListener {
|
||||||
|
Loading…
Reference in New Issue
Block a user