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]