You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@doris.apache.org by hu...@apache.org on 2026/10/14 14:42:24 UTC
(doris) branch master updated: [Fix](test) Isolate profile manager in cloud insert retry tests (#69015)
This is an automated email from the ASF dual-hosted git repository.
924060929 pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/doris.git
The following commit(s) were added to refs/heads/master by this push:
new 25a15f932a2 [Fix](test) Isolate profile manager in cloud insert retry tests (#69015)
25a15f932a2 is described below
commit 25a15f932a2f5cf0c92f82bddcf962ac5a8bf5b2
Author: linrrarity <li...@selectdb.com>
AuthorDate: Wed Oct 14 22:42:16 2026 +0800
[Fix](test) Isolate profile manager in cloud insert retry tests (#69015)
### What problem does this PR solve?
Related PR: #68658
Problem Summary:
CloudInsertProfileRetryTest uses the ProfileManager singleton, which
starts a periodic storage thread. After an INSERT retry succeeds, this
thread can persist the finished profile and clear its execution profiles
before the test assertions run, causing intermittent failures.
Use a dedicated ProfileManager without starting its periodic thread and
redirect singleton access through a scoped static mock. Preserve the
explicit background storage probe to verify that profiles remain
ineligible for storage while the outer retry decision is pending.
---
.../plans/commands/insert/CloudInsertProfileRetryTest.java | 14 +++++++++++++-
1 file changed, 13 insertions(+), 1 deletion(-)
diff --git a/fe/fe-core/src/test/java/org/apache/doris/nereids/trees/plans/commands/insert/CloudInsertProfileRetryTest.java b/fe/fe-core/src/test/java/org/apache/doris/nereids/trees/plans/commands/insert/CloudInsertProfileRetryTest.java
index 56e0d267c85..b32328a67fd 100644
--- a/fe/fe-core/src/test/java/org/apache/doris/nereids/trees/plans/commands/insert/CloudInsertProfileRetryTest.java
+++ b/fe/fe-core/src/test/java/org/apache/doris/nereids/trees/plans/commands/insert/CloudInsertProfileRetryTest.java
@@ -87,6 +87,16 @@ public class CloudInsertProfileRetryTest extends TestWithFeService {
"MERGE_SUCCESS_EMPTY_WITH_SESSION_REVERT"})
@ResourceLock("global")
public void testInsertProfileRemainsOpenUntilOuterRetryDecision(String caseName, @TempDir Path storage) throws Exception {
+ // Keep the periodic storage thread from releasing the finished profile before assertions.
+ // The explicit backgroundStorage probe below still exercises storage eligibility during retry.
+ ProfileManager manager = new TestProfileManager();
+ try (MockedStatic<ProfileManager> managers = Mockito.mockStatic(ProfileManager.class)) {
+ managers.when(ProfileManager::getInstance).thenReturn(manager);
+ runInsertProfileRetryCase(caseName, storage, manager);
+ }
+ }
+
+ private void runInsertProfileRetryCase(String caseName, Path storage, ProfileManager manager) throws Exception {
boolean merge = caseName.startsWith("MERGE_");
String outcome = merge ? caseName.substring("MERGE_".length()) : caseName;
boolean realExecution = merge && "SUCCESS_EMPTY_WITH_SESSION_REVERT".equals(outcome);
@@ -127,7 +137,6 @@ public class CloudInsertProfileRetryTest extends TestWithFeService {
executor.setParsedStmt(adapter);
}
Profile profile = executor.getProfile();
- ProfileManager manager = ProfileManager.getInstance();
NereidsPlanner planner = Mockito.mock(NereidsPlanner.class);
Mockito.when(planner.getPhysicalRelations()).thenReturn(Collections.emptyList());
OlapTable table = Mockito.mock(OlapTable.class);
@@ -400,6 +409,9 @@ public class CloudInsertProfileRetryTest extends TestWithFeService {
}
}
+ private static class TestProfileManager extends ProfileManager {
+ }
+
private static TQueryProfile completeBackendReport(TUniqueId queryId) {
TRuntimeProfileNode pipeline = new TRuntimeProfileNode();
pipeline.setName("Pipeline 0");
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org
For additional commands, e-mail: commits-help@doris.apache.org