morningman opened a new pull request, #66459:
URL: https://github.com/apache/doris/pull/66459

   ### What problem does this PR solve?
   
   Backport two upstream regression-test fixes that never reached branch-4.0. 
Both cause recurring failures in the daily branch-4.0 P0 pipeline (latest: 
internal build #358, where `ann_index_basic` was the only failing case, and 
`test_compaction_profile_action` is currently muted with 5 failures in the last 
26 runs).
   
   **1. `ann_index_basic` ↔ `ivf_index_test` table-name collision (backport of 
#62178)**
   
   Both suites run in the same regression database (`ann_index_p0`) and both 
used `tbl_ann_l2` / `tbl_ann_ip`. With `suiteParallel=10` they can run 
concurrently. FE logs of the failing run show `ivf_index_test` dropping and 
recreating `tbl_ann_ip` **230ms** after `ann_index_basic` created it, then 
inserting 6 rows and leaving the table behind. `ann_index_basic` then resolves 
the neighbor's table by name: its `waitRowsVisible` gate polls `select id from 
tbl_ann_ip` for 30s, always sees 6 rows != 3, and times out.
   
   This also explains the historical intermittent empty result of `sql_ip_asc` 
(query landing between the neighbor's create and publish). The insert itself 
publishes in ~80ms even under ASAN, so the visibility-window theory behind the 
`waitRowsVisible` gate (#65942) was wrong; the gate is removed together with 
the rename.
   
   Fix: rename the shared tables with `basic_` / `ivf_` prefixes exactly as 
upstream did in 9c226f5bf0f (#62178). After this change 
`ann_index_basic.groovy` is byte-identical to the upstream post-#62178 file 
(blob `41ae9e5c309`). `ivf_index_test` takes only the renames, because the 
upstream file also carries the #60358 behavior change (insufficient train rows 
no longer throws) which branch-4.0 BE does not have. No `.out` changes needed 
(both files contain result rows only).
   
   **2. `test_compaction_profile_action` queries an arbitrary BE (backport of 
#65552)**
   
   The suite built the `/api/compaction/profile` URL from 
`backendId_to_backendIP.keySet()[0]`. On a multi-BE pipeline (4 BEs, 
replication forced to 3) the chosen BE has ~1/4 chance of not hosting the 
tablet replica, so the `tablet_id` filter returns an empty list. Observed 
failure rate 5/26 (~19%) matches; single-BE environments never hit it. Fix: 
derive the endpoint from the `BackendId` of the selected `SHOW TABLETS` row, 
exactly as upstream did in fd16ebdc331 (#65552); the file is byte-identical to 
the upstream post-fix version (blob `9eae22eac0d`). Once merged, the mute for 
this case (DORIS-26131) can be lifted.
   
   Note: branch-4.1 already has #62178 but still lacks #65552; a separate pick 
can follow.
   
   ### Check List (For Author)
   
   - Test
       - [x] Regression test (existing suites `ann_index_p0/ann_index_basic`, 
`ann_index_p0/ivf_index_test`, `compaction/test_compaction_profile_action` 
cover this; test-only change)
   - Behavior changed:
       - [x] No.
   - Does this need documentation?
       - [x] No.
   
   ### Check List (For Reviewer who merge this PR)
   
   - [ ] Confirm the release note
   - [ ] Confirm test cases
   - [ ] Confirm document
   - [ ] Add branch pick label
   
   🤖 Generated with [Claude Code](https://claude.com/claude-code)
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


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

Reply via email to