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]