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]

Reply via email to