github-actions[bot] commented on code in PR #65550:
URL: https://github.com/apache/doris/pull/65550#discussion_r3755122307
##########
cloud/src/recycler/recycler.cpp:
##########
@@ -5244,6 +5251,7 @@ int InstanceRecycler::recycle_rowsets() {
<< "rowset_keys_to_mark.size()=" <<
rowset_keys_to_mark.size();
return;
}
+
Review Comment:
[P1] Require a durable PREPARE publication fence
This collector accepts any PREPARE value after the optional mark/abort
steps. With force-immediate recycling and `mark=true, abort=false`, one round
can mark a live key and the next can scan it for deletion; a legitimate retry
of `prepare_rowset()` then blindly overwrites that same key without preserving
`is_recycled`. This reread accepts the now-unmarked PREPARE, so
`commit_rowset()` can consume it while prefix deletion runs and the still-live
txn/job can publish a tmp rowset whose files were removed. Require a successful
exact-owner abort or a marker that `prepare_rowset()` cannot overwrite and that
the collector revalidates before deletion, and cover this retry/commit
interleaving.
--
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]