bobhan1 opened a new pull request, #69497:
URL: https://github.com/apache/doris/pull/69497
### What problem does this PR solve?
Backport #68436 to `branch-4.2` (upstream commit
`e4d328e23b888ea9698f7e58c99dcf460580e122`).
During cloud schema change, compaction can prefill the aggregate
delete-bitmap cache before a `TABLET_NOTREADY` tablet has its complete delete
bitmap. Those entries can survive the transition to `TABLET_RUNNING` and expose
overwritten rows. Require `TABLET_RUNNING` under the existing tablet header
read lock before either post-compaction prefill mode runs.
The production patch is identical to upstream. Adapt the parameterized test
to 4.2's contiguous segment IDs and `DeleteBitmap::BitmapKey` API, retaining
all four prefill switch combinations, output and non-output rowsets, and the
unchanged read-version check across the state transition.
### Release note
Fix duplicate rows returned by Unique Key Merge-on-Write queries when schema
change overlaps compaction.
### Check List (For Author)
- Test
- [ ] Regression test
- [x] Unit Test
- [ ] Manual test
- [ ] No need to test or manual test.
Validation:
```bash
./run-be-ut.sh --run
--filter='PrefillModes/CloudTabletDeleteBitmapPrefillTest.*:CloudTabletDeleteBitmapTest.*:TabletMetaTest.*:CloudCompactionTest.*'
-j100
```
ASAN: **52 tests from 4 test suites passed**, including all four new prefill
parameter combinations, `CloudTabletDeleteBitmapTest`, `TabletMetaTest`, and
`CloudCompactionTest`.
Changed C++ code passes clang-format 16; `git diff --check
upstream/branch-4.2...HEAD` passes. Docker regression was not run.
- Behavior changed:
- [ ] No.
- [x] Yes. Skip post-compaction aggregate delete-bitmap cache prefill
until the tablet is RUNNING.
- Does this need documentation?
- [x] No.
- [ ] Yes.
### Check List (For Reviewer who merge this PR)
- [ ] Confirm the release note
- [ ] Confirm test cases
- [ ] Confirm document
- [ ] Add branch pick label
--
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]