From 30526cbef6178d3401f876bc857beaa6d859b80a Mon Sep 17 00:00:00 2001 From: Amnon Hanuhov Date: Tue, 6 Sep 2022 15:22:07 +0300 Subject: [PATCH] db: Fixes for db_test2 and deletefile_test Following the change of scheduling purges with low priority, instead of high priority, tests that tried to block purges from happening by taking up a slot in the high priority queue, had to instead be scheduled with low piority too. --- db/db_test2.cc | 8 +++++--- db/deletefile_test.cc | 8 ++++---- 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/db/db_test2.cc b/db/db_test2.cc index 95599637d4..3d5056c052 100644 --- a/db/db_test2.cc +++ b/db/db_test2.cc @@ -5896,10 +5896,12 @@ TEST_F(DBTest2, BackgroundPurgeTest) { size_t value = options.write_buffer_manager->memory_usage(); ASSERT_GT(value, base_value); - db_->GetEnv()->SetBackgroundThreads(1, Env::Priority::HIGH); + // Take up a slot in the low priority pool + // in order to prevent a purge from running when the iterator is deleted. + db_->GetEnv()->SetBackgroundThreads(1, Env::Priority::LOW); test::SleepingBackgroundTask sleeping_task_after; db_->GetEnv()->Schedule(&test::SleepingBackgroundTask::DoSleepTask, - &sleeping_task_after, Env::Priority::HIGH); + &sleeping_task_after, Env::Priority::LOW); delete iter; Env::Default()->SleepForMicroseconds(100000); @@ -5911,7 +5913,7 @@ TEST_F(DBTest2, BackgroundPurgeTest) { test::SleepingBackgroundTask sleeping_task_after2; db_->GetEnv()->Schedule(&test::SleepingBackgroundTask::DoSleepTask, - &sleeping_task_after2, Env::Priority::HIGH); + &sleeping_task_after2, Env::Priority::LOW); sleeping_task_after2.WakeUp(); sleeping_task_after2.WaitUntilDone(); diff --git a/db/deletefile_test.cc b/db/deletefile_test.cc index b4cf0cbb7a..0214cc6324 100644 --- a/db/deletefile_test.cc +++ b/db/deletefile_test.cc @@ -252,11 +252,11 @@ TEST_F(DeleteFileTest, BackgroundPurgeIteratorTest) { CheckFileTypeCounts(dbname_, 0, 3, 1); test::SleepingBackgroundTask sleeping_task_before; env_->Schedule(&test::SleepingBackgroundTask::DoSleepTask, - &sleeping_task_before, Env::Priority::HIGH); + &sleeping_task_before, Env::Priority::LOW); delete itr; test::SleepingBackgroundTask sleeping_task_after; env_->Schedule(&test::SleepingBackgroundTask::DoSleepTask, - &sleeping_task_after, Env::Priority::HIGH); + &sleeping_task_after, Env::Priority::LOW); // Make sure no purges are executed foreground CheckFileTypeCounts(dbname_, 0, 3, 1); @@ -334,7 +334,7 @@ TEST_F(DeleteFileTest, BackgroundPurgeCFDropTest) { delete cfh; test::SleepingBackgroundTask sleeping_task_after; env_->Schedule(&test::SleepingBackgroundTask::DoSleepTask, - &sleeping_task_after, Env::Priority::HIGH); + &sleeping_task_after, Env::Priority::LOW); // If background purge is enabled, the file should still be there. CheckFileTypeCounts(dbname_, 0, bg_purge ? 1 : 0, 1); TEST_SYNC_POINT("DeleteFileTest::BackgroundPurgeCFDropTest:1"); @@ -403,7 +403,7 @@ TEST_F(DeleteFileTest, BackgroundPurgeCopyOptions) { test::SleepingBackgroundTask sleeping_task_after; env_->Schedule(&test::SleepingBackgroundTask::DoSleepTask, - &sleeping_task_after, Env::Priority::HIGH); + &sleeping_task_after, Env::Priority::LOW); // Make sure all background purges are executed sleeping_task_after.WakeUp();