liaoxin01 opened a new pull request, #60919:
URL: https://github.com/apache/doris/pull/60919

   ## Proposed changes
   
   In batch `delete_rowset_data`, empty rowsets (e.g. base compaction output of 
empty rowsets) have `num_segments=0` and no `resource_id` set. The 
`accessor_map_.find("")` fails and sets `ret=-1`, which causes the caller to 
skip `txn_remove` for the entire batch. This prevents recycle KV keys from 
being cleaned up, creating a perpetual loop where the same rowsets are scanned 
every recycle round.
   
   The fix moves the `num_segments <= 0` check before the `accessor_map_` 
lookup so these empty rowsets are safely skipped without poisoning the batch 
return value.
   
   ## Problem summary
   
   - Empty rowsets from base compaction have `resource_id=""`, 
`rowset_meta_size=181`, `num_segments=0`
   - `accessor_map_.find("")` fails, sets `ret = -1`, `txn_remove` skipped for 
entire batch
   - Normal rowsets in the same batch: object storage data already deleted, but 
recycle KV not cleaned up
   - Next recycle round re-scans the same rowsets, forming a dead loop
   


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