]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commit
rgw/lc: At least wait for |rgw_lc_lock_max_time| while trying to fetch the lc-shard... 65607/head
authorkchheda3 <kchheda3@bloomberg.net>
Fri, 19 Sep 2025 20:05:55 +0000 (16:05 -0400)
committerkchheda3 <kchheda3@bloomberg.net>
Fri, 19 Sep 2025 20:09:07 +0000 (16:09 -0400)
commit937ac626afd3bf443edf96aa177854e8eb291af5
tree16fbe59f308781de13410ad6fb8e953099ef0ffc
parent541d13a6305bac9255348eeeef61d0c5096bf5bf
rgw/lc: At least wait for |rgw_lc_lock_max_time| while trying to fetch the lc-shard lock to get or update the bucket status.

Currently each lc worker would try 1 second to get the lock on lc_shard to decide on which bucket to process and again 1 second to update the bucket status once bucket is lc processed. However when there are multiple rgws running lc, often shard is locked by the other lc worker or if there are issues when the rados is slow the lock is not processed within 1 second and worker either skips processing the bucket or skips updating the bucket, resulting in miss of LC or miss in updating the bucket status.
So in worst case when other lc worker is already processing a shard, wait for rgw_lc_lock_max_time to get the lock, as any given worker can max hold onto rgw_lc_lock_max_time a given shard.

Signed-off-by: kchheda3 <kchheda3@bloomberg.net>
src/rgw/rgw_lc.cc