From e7c3391640d72ffcd2e095dab8cfaec92fc2948e Mon Sep 17 00:00:00 2001 From: Xingbo Wang Date: Mon, 23 Feb 2026 22:55:04 -0800 Subject: [PATCH] Fix flaky unit test in mempurge. (#14377) Summary: Add proper synchronization in mempurge unit test to fix flaky test Pull Request resolved: https://github.com/facebook/rocksdb/pull/14377 Test Plan: Unit test Reviewed By: nmk70 Differential Revision: D94153290 Pulled By: xingbowang fbshipit-source-id: 2a2cdcc6f8b5500bb5e68d2d223255cd1a5660b3 --- db/db_flush_test.cc | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/db/db_flush_test.cc b/db/db_flush_test.cc index e1000c576f..3196dc5c6c 100644 --- a/db/db_flush_test.cc +++ b/db/db_flush_test.cc @@ -1055,6 +1055,8 @@ TEST_F(DBFlushTest, MemPurgeBasic) { ASSERT_EQ(Get(RNDKEY2), p_rv2); ASSERT_EQ(Get(RNDKEY3), p_rv3); + // Wait for all flush callbacks to complete before closing + ASSERT_OK(dbfull()->TEST_WaitForFlushMemTable()); Close(); } @@ -1169,6 +1171,8 @@ TEST_F(DBFlushTest, MemPurgeBasicToggle) { // We expect no mempurge at all. EXPECT_EQ(mempurge_count.exchange(0), ZERO); + // Wait for all flush callbacks to complete before closing + ASSERT_OK(dbfull()->TEST_WaitForFlushMemTable()); Close(); } // End of MemPurgeBasicToggle, which is not @@ -1425,6 +1429,8 @@ TEST_F(DBFlushTest, MemPurgeDeleteAndDeleteRange) { delete iter; } + // Wait for all flush callbacks to complete before closing + ASSERT_OK(dbfull()->TEST_WaitForFlushMemTable()); Close(); }