branch-4.0: [chore](recycler) Disable enable_mark_delete_rowset_before_recycle and enable_abort_txn_and_job_for_delete_rowset_before_recycle for recycler (#66150) - #66228
Open
wyxxxcat wants to merge 1 commit into
Conversation
…and `enable_abort_txn_and_job_for_delete_rowset_before_recycle` for recycler (apache#66150)
Contributor
|
Thank you for your contribution to Apache Doris. Please clearly describe your PR:
|
Collaborator
Author
|
run buildall |
Contributor
Cloud UT Coverage ReportIncrement line coverage Increment coverage report
|
Contributor
There was a problem hiding this comment.
I found one blocking data-correctness issue in the recycler default change.
Critical checkpoint conclusions:
- Goal and proof: The two-file branch pick flips both recycler ownership switches to false and adapts lifecycle tests, but it does not provide a safe handoff for a durable COMMITTED transaction whose lazy conversion must be recovered.
- Scope and clarity: Both changed files and all related recycler, transaction, lazy commit, compaction, and schema-change paths were reviewed. The branch-pick goal is clear; the PR/source descriptions do not explain why removing the safety protocol is correct.
- Concurrency: Blocking issue M-001 is accepted. Tmp recycling and COMMITTED advancement run concurrently, and no KV transaction spans object deletion, tmp-key removal, and the visibility transition.
- Lifecycle/static initialization: An interrupted lazy commit can remain COMMITTED until recycler eligibility, then become VISIBLE after its tmp rows are deleted. The new test guard's construction/destruction is sound; no separate static-lifetime issue was found.
- Configuration: The mutable false/false defaults affect the common tmp-rowset path in both versioned and non-versioned modes. Preserving marking is a minimum barrier, but deletion also needs a status-aware COMMITTED-owner check.
- Compatibility and parallel paths: Old-BE/delete-predicate, missing-job-id, direct transaction, compaction, schema-change, versioned formal-rowset, and parallel lazy commit paths were checked. Normal expiry gates qualify the direct publisher races; no separate compatibility blocker was found.
- Conditional/error handling: Marked tmp rows stop lazy commit, but the recycler abort helper ignores COMMITTED owners, while an empty lazy scan is treated as success and followed by the VISIBLE transition.
- Tests/results: All nine modified lifecycle tests force the previous true/true behavior, so none covers false/false recovery of a stale COMMITTED transaction. I did not run builds or tests because this review runner explicitly forbids them.
- Observability: Existing logs can trace recycler and lazy-commit steps but do not prevent the invalid state transition.
- Persistence and data writes: M-001 can persist VISIBLE transaction metadata without rowset files and can leave a partition's pending transaction id uncleared.
- Performance: No distinct performance regression was substantiated.
- Repository instructions: No required AGENTS.md files were listed, and the repository-local code-review skill was absent; the prompt contract was followed without reducing review coverage.
User focus: No additional user-provided focus was specified.
Review completion: The full authoritative two-file diff and relevant upstream/downstream paths were reviewed. Three normal/risk-focused rounds converged; every Round 3 reviewer returned NO_NEW_VALUABLE_FINDINGS against this frozen one-inline comment set, and no suspicious point remains unresolved.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
pick: #66150