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

hello-stephen 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 fd16ebdc331 [fix](regression) Select compaction profile BE by tablet 
replica (#65552)
fd16ebdc331 is described below

commit fd16ebdc331fec44ad618e7453a4cdd01bba48e7
Author: shuke <[email protected]>
AuthorDate: Thu Jul 16 19:40:02 2026 +0800

    [fix](regression) Select compaction profile BE by tablet replica (#65552)
    
    Related PR: #63886
    
    Problem Summary:
    
    `test_compaction_profile_action` queried `/api/compaction/profile` on
    the first backend returned by `SHOW BACKENDS`, independently of the
    target tablet placement. The profile API reads the selected BE's
    process-local compaction tracker, so the tablet filter returned an empty
    list whenever that backend was the one BE outside the target tablet's
    three-replica set.
    
    The branch-4.1 P0 history shows 13 failures in 32 runs. In every
    failure, the queried first backend was outside the target replica set;
    in every passing run, it hosted a target replica.
    
    This change derives the profile endpoint from the `BackendId` in the
    same `SHOW TABLETS` row as the selected `TabletId`. The case therefore
    queries a replica that participates in `trigger_and_wait_compaction`
    while preserving all existing API assertions.
---
 .../suites/compaction/test_compaction_profile_action.groovy      | 9 ++++-----
 1 file changed, 4 insertions(+), 5 deletions(-)

diff --git 
a/regression-test/suites/compaction/test_compaction_profile_action.groovy 
b/regression-test/suites/compaction/test_compaction_profile_action.groovy
index 8882aab6795..9eae22eac0d 100644
--- a/regression-test/suites/compaction/test_compaction_profile_action.groovy
+++ b/regression-test/suites/compaction/test_compaction_profile_action.groovy
@@ -25,11 +25,6 @@ suite("test_compaction_profile_action", "p0") {
     def backendId_to_backendHttpPort = [:]
     getBackendIpHttpPort(backendId_to_backendIP, backendId_to_backendHttpPort)
 
-    String backend_id = backendId_to_backendIP.keySet()[0]
-    def beHost = backendId_to_backendIP[backend_id]
-    def beHttpPort = backendId_to_backendHttpPort[backend_id]
-    def baseUrl = "http://${beHost}:${beHttpPort}/api/compaction/profile";
-
     try {
         // Step 2: Create table, insert data, trigger compaction, wait for 
completion
         sql """ DROP TABLE IF EXISTS ${tableName} """
@@ -64,6 +59,10 @@ suite("test_compaction_profile_action", "p0") {
         assertTrue(tablets.size() > 0)
         def tablet = tablets[0]
         String tablet_id = tablet.TabletId
+        String backend_id = tablet.BackendId
+        def beHost = backendId_to_backendIP[backend_id]
+        def beHttpPort = backendId_to_backendHttpPort[backend_id]
+        def baseUrl = "http://${beHost}:${beHttpPort}/api/compaction/profile";
 
         // Trigger compaction and wait for completion
         trigger_and_wait_compaction(tableName, "cumulative")


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

Reply via email to