From 52134aaa0f986b1d9d52693f06dc22c2ac9e6e40 Mon Sep 17 00:00:00 2001 From: JaySon-Huang Date: Wed, 10 Jun 2026 22:17:51 +0800 Subject: [PATCH 1/2] test: fix flaky DisaggReadSnapshot by skipping background tasks during setup skip_check_segment_update prevents write() from scheduling background flush/merge tasks, avoiding a race where background placeDeltaIndex or merge delta holds is_updating and causes mergeDeltaAll() to fail silently, resulting in 5 persisted column files instead of the expected 4. Close #10897. --- .../Storages/DeltaMerge/tests/gtest_segment_read_task.cpp | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/dbms/src/Storages/DeltaMerge/tests/gtest_segment_read_task.cpp b/dbms/src/Storages/DeltaMerge/tests/gtest_segment_read_task.cpp index bf502e88adc..f3a952770c9 100644 --- a/dbms/src/Storages/DeltaMerge/tests/gtest_segment_read_task.cpp +++ b/dbms/src/Storages/DeltaMerge/tests/gtest_segment_read_task.cpp @@ -649,6 +649,14 @@ try // stable { + // skip_check_segment_update prevents write() from scheduling background + // flush/merge tasks, avoiding a race where background placeDeltaIndex or + // merge delta holds is_updating and causes mergeDeltaAll() to fail silently. + FailPointHelper::enableFailPoint(FailPoints::skip_check_segment_update); + auto fp_guard = ext::make_scope_guard([]() { + FailPointHelper::disableFailPoint(FailPoints::skip_check_segment_update); + }); + auto block = DMTestEnv::prepareSimpleWriteBlock(0, 4096, false); store->write(*db_context, db_context->getSettingsRef(), block); store->mergeDeltaAll(*db_context); From 379723b9285cfc2e1f81e2fb78880f40056d6efb Mon Sep 17 00:00:00 2001 From: JaySon-Huang Date: Wed, 10 Jun 2026 22:34:48 +0800 Subject: [PATCH 2/2] Format codes Signed-off-by: JaySon-Huang --- .../Storages/DeltaMerge/tests/gtest_segment_read_task.cpp | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/dbms/src/Storages/DeltaMerge/tests/gtest_segment_read_task.cpp b/dbms/src/Storages/DeltaMerge/tests/gtest_segment_read_task.cpp index f3a952770c9..e84488b3a3b 100644 --- a/dbms/src/Storages/DeltaMerge/tests/gtest_segment_read_task.cpp +++ b/dbms/src/Storages/DeltaMerge/tests/gtest_segment_read_task.cpp @@ -653,9 +653,8 @@ try // flush/merge tasks, avoiding a race where background placeDeltaIndex or // merge delta holds is_updating and causes mergeDeltaAll() to fail silently. FailPointHelper::enableFailPoint(FailPoints::skip_check_segment_update); - auto fp_guard = ext::make_scope_guard([]() { - FailPointHelper::disableFailPoint(FailPoints::skip_check_segment_update); - }); + auto fp_guard + = ext::make_scope_guard([]() { FailPointHelper::disableFailPoint(FailPoints::skip_check_segment_update); }); auto block = DMTestEnv::prepareSimpleWriteBlock(0, 4096, false); store->write(*db_context, db_context->getSettingsRef(), block);