github-actions[bot] commented on code in PR #66919:
URL: https://github.com/apache/doris/pull/66919#discussion_r3849113642


##########
cloud/src/recycler/recycler.cpp:
##########
@@ -4807,6 +4815,14 @@ int InstanceRecycler::recycle_tablet(int64_t tablet_id, 
RecyclerMetricsContext&
                     .tag("rowset_id", rs_meta.rowset_id_v2());
             return -1;
         }
+        if (decrement_delete_bitmap_packed_file_ref_counts(tablet_id, 
rs_meta.rowset_id_v2(),

Review Comment:
   [P1] Decrement every packed DBM before deleting the tablet range
   
   These loops cover current and restore-job rowsets only, but the bulk removal 
below also destroys DBMs whose only rowset owner is elsewhere. A compacted 
rowset can exist only in `RecycleRowsetPB`, and a load writes `meta_rowset_tmp` 
before saving its packed DBM; tmp keys are transaction-first and may remain for 
72 hours after an index becomes recyclable. If tablet recycling wins, it 
removes those owners/DBM locations without decrementing their packed slices. A 
slice already marked `corrected` is never rechecked, so its `data/packed_file` 
object and KV stay live indefinitely. Please enumerate the tablet's DBM range 
itself (or otherwise prove every owner namespace is drained) before removing 
it, and test packed DBMs owned by recycled and uncommitted tmp rowsets.



-- 
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