This is an automated email from the ASF dual-hosted git repository.

dataroaring 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 48bffdc00f6 [fix](group commit) group commit skip decommissioning 
backend (#58676)
48bffdc00f6 is described below

commit 48bffdc00f675e4a66d30617d9f9918360735d53
Author: meiyi <[email protected]>
AuthorDate: Thu Dec 4 15:56:57 2025 +0800

    [fix](group commit) group commit skip decommissioning backend (#58676)
---
 .../src/main/java/org/apache/doris/load/GroupCommitManager.java  | 9 ++++++---
 regression-test/suites/insert_p0/insert_group_commit_into.groovy | 2 +-
 .../insert_p0/test_group_commit_interval_ms_property.groovy      | 8 ++++----
 3 files changed, 11 insertions(+), 8 deletions(-)

diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/load/GroupCommitManager.java 
b/fe/fe-core/src/main/java/org/apache/doris/load/GroupCommitManager.java
index 4920dc2bb14..25e72199d2a 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/load/GroupCommitManager.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/load/GroupCommitManager.java
@@ -293,7 +293,8 @@ public class GroupCommitManager {
         }
         List<String> backendsInfo = backends.stream()
                 .map(be -> "{ beId=" + be.getId() + ", alive=" + be.isAlive() 
+ ", active=" + be.isActive()
-                        + ", decommission=" + be.isDecommissioned() + " }")
+                        + ", decommissioned=" + be.isDecommissioned() + ", 
decommissioning=" + be.isDecommissioning()
+                        + " }")
                 .collect(Collectors.toList());
         throw new LoadException("No suitable backend for cloud cluster=" + 
cluster + ", backends = " + backendsInfo);
     }
@@ -348,7 +349,8 @@ public class GroupCommitManager {
                     return null;
                 }
                 Backend backend = 
Env.getCurrentSystemInfo().getBackend(backendId);
-                if (backend != null && backend.isAlive() && 
!backend.isDecommissioned()) {
+                if (backend != null && backend.isAlive() && 
!backend.isDecommissioned()
+                        && (!Config.isCloudMode() || 
!backend.isDecommissioning())) {
                     return backend.getId();
                 } else {
                     tableToBeMap.remove(encode(cluster, tableId));
@@ -365,7 +367,8 @@ public class GroupCommitManager {
         OlapTable table = (OlapTable) 
Env.getCurrentEnv().getInternalCatalog().getTableByTableId(tableId);
         Collections.shuffle(backends);
         for (Backend backend : backends) {
-            if (backend.isAlive() && !backend.isDecommissioned()) {
+            if (backend.isAlive() && !backend.isDecommissioned() && 
(!Config.isCloudMode()
+                    || !backend.isDecommissioning())) {
                 tableToBeMap.put(encode(cluster, tableId), backend.getId());
                 tableToPressureMap.put(tableId,
                         new 
SlidingWindowCounter(table.getGroupCommitIntervalMs() / 1000 + 1));
diff --git a/regression-test/suites/insert_p0/insert_group_commit_into.groovy 
b/regression-test/suites/insert_p0/insert_group_commit_into.groovy
index 5e428a1f88a..1b9b31db1d3 100644
--- a/regression-test/suites/insert_p0/insert_group_commit_into.groovy
+++ b/regression-test/suites/insert_p0/insert_group_commit_into.groovy
@@ -476,7 +476,7 @@ suite("insert_group_commit_into") {
         sql """ set insert_max_filter_ratio = 0.05; """
         test {
             sql """ insert into ${table} values('a', 'a'), ('10', 'a'), ('11', 
'a'), ('12', 'a'); """
-            exception """too many filtered rows"""
+            exception """null value for not null column"""
         }
         getRowCount(2)
     } finally {
diff --git 
a/regression-test/suites/insert_p0/test_group_commit_interval_ms_property.groovy
 
b/regression-test/suites/insert_p0/test_group_commit_interval_ms_property.groovy
index c42d251ee03..56295ca07a8 100644
--- 
a/regression-test/suites/insert_p0/test_group_commit_interval_ms_property.groovy
+++ 
b/regression-test/suites/insert_p0/test_group_commit_interval_ms_property.groovy
@@ -52,7 +52,7 @@ suite("test_group_commit_interval_ms_property") {
                 DISTRIBUTED BY HASH (k) BUCKETS 8
                 PROPERTIES(  
                 "replication_num" = "1",
-                "group_commit_interval_ms"="10000"
+                "group_commit_interval_ms"="5000"
                 );
             """
 
@@ -61,11 +61,11 @@ suite("test_group_commit_interval_ms_property") {
             sql """ set group_commit = async_mode; """
 
             def res1 = sql """show create table ${test_table}"""
-            assertTrue(res1.toString().contains("\"group_commit_interval_ms\" 
= \"10000\""))
+            assertTrue(res1.toString().contains("\"group_commit_interval_ms\" 
= \"5000\""))
 
             def msg1 = group_commit_insert """insert into ${test_table} 
values(1,1); """, 1
 
-            Thread.sleep(2000);
+            Thread.sleep(100);
 
             def msg2 = group_commit_insert """insert into ${test_table} 
values(2,2) """, 1
 
@@ -78,7 +78,7 @@ suite("test_group_commit_interval_ms_property") {
 
             def msg3 = group_commit_insert """insert into ${test_table} 
values(3,3); """, 1
 
-            Thread.sleep(8000);
+            Thread.sleep(6000);
 
             def msg4 = group_commit_insert """insert into ${test_table} 
values(4,4); """, 1
 


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to