From 334766e84b84eaa2eb378ef42ad29d2fc0189224 Mon Sep 17 00:00:00 2001 From: Gabriel Date: Tue, 25 Aug 2026 09:49:59 +0800 Subject: [PATCH] branch-4.1: [fix](test) Stabilize Paimon external path case --- .../write/test_paimon_write_external_paths.groovy | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/regression-test/suites/external_table_p0/paimon/write/test_paimon_write_external_paths.groovy b/regression-test/suites/external_table_p0/paimon/write/test_paimon_write_external_paths.groovy index 1ce16faf5ce044..a8e057c33d3c58 100644 --- a/regression-test/suites/external_table_p0/paimon/write/test_paimon_write_external_paths.groovy +++ b/regression-test/suites/external_table_p0/paimon/write/test_paimon_write_external_paths.groovy @@ -122,8 +122,7 @@ suite("test_paimon_write_external_paths", "p0,external,paimon") { assertSparkDorisResultEquals(sparkRows, dorisRows) } - // Separate statements force separate writer lifecycles. The selected - // path must therefore be refreshed for every Doris commit. + // Separate statements force separate writer lifecycles. sql """INSERT INTO t_round_robin VALUES ('p1', 1, 'one')""" sql """INSERT INTO t_round_robin VALUES ('p1', 2, 'two')""" sql """INSERT INTO t_round_robin VALUES ('p2', 3, 'three')""" @@ -134,8 +133,13 @@ suite("test_paimon_write_external_paths", "p0,external,paimon") { FROM numbers("number" = "16") """ def oldRoundFiles = dataFiles("t_round_robin") - assertTrue(oldRoundFiles.any { it.startsWith("${pathRoot}/round-a/") }) - assertTrue(oldRoundFiles.any { it.startsWith("${pathRoot}/round-b/") }) + assertFalse(oldRoundFiles.isEmpty()) + // Each lifecycle randomly initializes its round-robin position, so independent + // statements need not hit both paths. Only membership in the configured set is stable. + assertTrue(oldRoundFiles.every { + it.startsWith("${pathRoot}/round-a/") || + it.startsWith("${pathRoot}/round-b/") + }) assertDorisSparkRows("external_round_robin_initial", "t_round_robin", "pt, id, length(payload)", "ORDER BY pt, id")