mirror of
https://github.com/apache/doris.git
synced 2026-11-04 07:31:17 +00:00
### What problem does this PR solve? Related PR: #69606 Backport #69606 to `branch-4.1` from commit `97ae75cb12f532df0ee42da4bc288559bd19b8a3`. When a commit retry observes a transaction that is already COMMITTED, the immediate, eventual and sub-transaction paths now join or resume lazy publication and reread the durable VISIBLE state. This prevents a stale temporary-rowset scan from publishing duplicate rowsets or returning partial partition versions. Publication failure preserves commit success with the existing incomplete-lazy response flags. Failed immediate response data is cleared before lazy fallback. Context conflicts were resolved against the existing 4.1 transaction flow. The added and removed lines in all four files match the upstream change. ### Validation - ASAN Cloud UT build passed: `BUILD_TYPE=ASAN ./run-cloud-ut.sh -j100`. - `txn_lazy_commit_test` with filter `CommittedTxnRetryTest.*:TxnLazyCommitTest.FallThroughCommitTxnEventuallyTest`: **4 passed, 0 failures, 0 errors**, verified in the GTest XML report. The three retry cases used a private FoundationDB 7.1.26 instance; the fallback case uses MemTxnKv. - Changed-line clang-format 16 and `git diff --check` passed. ### Release note Prevent duplicate publication and incomplete version responses when transaction commit retries race lazy publication, while preserving commit success when lazy publication is incomplete. ### Check List (For Author) - Test - [x] Unit Test - Behavior changed: - [x] Yes. Resume COMMITTED retries through lazy publication and discard failed immediate response data before fallback. - Does this need documentation? - [x] No. No new user-facing setting or syntax. ### Check List (For Reviewer who merge this PR) - [ ] Confirm the release note - [ ] Confirm test cases - [ ] Confirm document - [ ] Add branch pick label