Skip to content

Commit 16e0f35

Browse files
committed
Update tests to address comments
1 parent 99d32e9 commit 16e0f35

2 files changed

Lines changed: 24 additions & 12 deletions

File tree

‎db/db_compaction_test.cc‎

Lines changed: 23 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -3429,7 +3429,7 @@ TEST_F(DBCompactionTest, WaitForCompactContinueAfterPauseNotAborted) {
34293429
ASSERT_OK(dbfull()->ContinueBackgroundWork());
34303430

34313431
WaitForCompactOptions waitForCompactOptions = WaitForCompactOptions();
3432-
waitForCompactOptions.abort_on_pause = false;
3432+
waitForCompactOptions.abort_on_pause = true;
34333433
ASSERT_OK(dbfull()->WaitForCompact(waitForCompactOptions));
34343434
}
34353435

@@ -3458,23 +3458,34 @@ TEST_F(DBCompactionTest, WaitForCompactShutdownWhileWaiting) {
34583458
}
34593459
ASSERT_OK(dbfull()->WaitForCompact(WaitForCompactOptions()));
34603460

3461-
ROCKSDB_NAMESPACE::SyncPoint::GetInstance()->LoadDependency(
3462-
{{"DBCompactionTest::WaitForCompactShutdownWhileWaiting",
3463-
"CompactionJob::Run():Start"}});
3461+
ROCKSDB_NAMESPACE::SyncPoint::GetInstance()->LoadDependency({
3462+
{"CompactionJob::Run():Start",
3463+
"DBCompactionTest::WaitForCompactShutdownWhileWaiting:0"},
3464+
{"DBImpl::WaitForCompact:Start",
3465+
"DBCompactionTest::WaitForCompactShutdownWhileWaiting:1"},
3466+
{"DBImpl::~DBImpl:WaitJob", "CompactionJob::Run():End"},
3467+
});
3468+
34643469
ROCKSDB_NAMESPACE::SyncPoint::GetInstance()->EnableProcessing();
34653470

34663471
// Now trigger L0 compaction by adding a file
34673472
GenerateNewRandomFile(&rnd, /* nowait */ true);
34683473
ASSERT_OK(Flush());
3474+
// Wait for compaction to start
3475+
TEST_SYNC_POINT("DBCompactionTest::WaitForCompactShutdownWhileWaiting:0");
3476+
3477+
// Wait for Compaction in another thread
3478+
auto waiting_for_compaction_thread = port::Thread([this]() {
3479+
Status s = dbfull()->WaitForCompact(WaitForCompactOptions());
3480+
ASSERT_NOK(s);
3481+
ASSERT_TRUE(s.IsShutdownInProgress());
3482+
});
3483+
TEST_SYNC_POINT("DBCompactionTest::WaitForCompactShutdownWhileWaiting:1");
3484+
// Shutdown after wait started, but before the compaction finishes
3485+
auto closing_thread = port::Thread([this]() { Close(); });
34693486

3470-
// Shutdown before the compaction finishes
3471-
dbfull()->CancelAllBackgroundWork(false /* wait */);
3472-
3473-
TEST_SYNC_POINT("DBCompactionTest::WaitForCompactShutdownWhileWaiting");
3474-
3475-
Status s = dbfull()->WaitForCompact(WaitForCompactOptions());
3476-
ASSERT_NOK(s);
3477-
ASSERT_TRUE(s.IsShutdownInProgress());
3487+
waiting_for_compaction_thread.join();
3488+
closing_thread.join();
34783489

34793490
ROCKSDB_NAMESPACE::SyncPoint::GetInstance()->DisableProcessing();
34803491
}

‎db/db_impl/db_impl_compaction_flush.cc‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3963,6 +3963,7 @@ void DBImpl::GetSnapshotContext(
39633963
Status DBImpl::WaitForCompact(
39643964
const WaitForCompactOptions& wait_for_compact_options) {
39653965
InstrumentedMutexLock l(&mutex_);
3966+
TEST_SYNC_POINT("DBImpl::WaitForCompact:Start");
39663967
for (;;) {
39673968
if (shutting_down_.load(std::memory_order_acquire)) {
39683969
return Status::ShutdownInProgress();

0 commit comments

Comments
 (0)