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]