From 8ea2ab2d2a820b6c9b811422bf5e5c9ac6021645 Mon Sep 17 00:00:00 2001 From: Isaac Garzon Date: Mon, 7 Nov 2022 13:51:33 +0200 Subject: [PATCH] deletefile_test: fix breakage caused by the compaction threads change (#217) In #194 the default value for background compaction threads was changed to 8 (from 1). This caused some tests to fail and fixes were implemented as part of #197. Alas, it seems that the fixes weren't complete, as under stress a test still fail. Make it so the test is truly fixed now. This can be verified by running them in a loop with the machine overloaded: ``` $ while ./deletefile_test --gtest_filter=DeleteFileTest.BackgroundPurgeCFDropTest; do sleep 1; done ``` --- db/deletefile_test.cc | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/db/deletefile_test.cc b/db/deletefile_test.cc index d230786789..8f78527c6a 100644 --- a/db/deletefile_test.cc +++ b/db/deletefile_test.cc @@ -349,6 +349,16 @@ TEST_F(DeleteFileTest, BackgroundPurgeCFDropTest) { TEST_SYNC_POINT("DeleteFileTest::BackgroundPurgeCFDropTest:1"); // Execute background purges. + sleeping_task_after[0].WakeUp(); + sleeping_task_after[0].WaitUntilDone(); + + // Schedule a sleeping task in order to ensure background purge completed + sleeping_task_after[0].Reset(); + env_->Schedule(&test::SleepingBackgroundTask::DoSleepTask, + &sleeping_task_after[0], Env::Priority::LOW); + sleeping_task_after[0].WaitUntilSleeping(); + + // Release all sleeping tasks for (auto& sleeping_task : sleeping_task_after) { sleeping_task.WakeUp(); sleeping_task.WaitUntilDone();