]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commit
rgw: fix stale entries in bucket indexes 61061/head
authorlu.shasha <lu.shasha@aishu.cn>
Mon, 2 Dec 2024 09:10:23 +0000 (17:10 +0800)
committerKonstantin Shalygin <k0ste@k0ste.ru>
Thu, 12 Dec 2024 04:59:21 +0000 (11:59 +0700)
commit7833412b6e7749c23c1b3b842f3fb68344f98a12
tree43cab7f4ca7bb73ca5f39b1c13816a5889e7a5a4
parent3912eed71d68462a66b7e3766ad5e090669edb83
rgw: fix stale entries in bucket indexes

If rados_osd_op_timeout is set, the primary osd is slow, the rgw_rados_operate for deleting the rgw head obj may return -ETIMEDOUT
rgw can't determine whether or not the delete succeeded, we shouldn't be calling index_op.complete_del or cancel()
Instead, we should leave that pending entry in the index so than bucket listing can recover with check_disk_state() and cls_rgw_suggest_changens()
When raced with another delete op, deleting the rgw head obj may return ENOENT, calling index_op.complete_del() instead of index_op.cancel()

Fixes: https://tracker.ceph.com/issues/58965
Signed-off-by: Shasha Lu <lu.shasha@aishu.cn>
(cherry picked from commit de9ce1e27322cdf5c1572a0b8eff4a33547757c0)
src/rgw/driver/rados/rgw_rados.cc