]> git.apps.os.sepia.ceph.com Git - ceph-ci.git/commit
rgw/multisite: reset RGW_ATTR_OBJ_REPLICATION_TRACE during object attr changes.
authorShilpa Jagannath <smanjara@redhat.com>
Thu, 11 Sep 2025 15:26:50 +0000 (11:26 -0400)
committerShilpa Jagannath <smanjara@redhat.com>
Tue, 16 Sep 2025 20:37:52 +0000 (16:37 -0400)
commite1ac09ec912ced1c7316c8a18dfad891423be30e
tree1257b86f4c610e737b17e23f878b3a7669df328a
parent9bebe324107b456ca4b28404c30cb1e01b6bb962
rgw/multisite: reset RGW_ATTR_OBJ_REPLICATION_TRACE during object attr changes.

otherwise, if a zone receives request for any s3 object api requests like PutObjectAcl, PutObjectTagging etc. and this zone
was originally the source zone for the object put request, then such subsequent sync ops will fail. this is because the
zone id was added to the replication trace to ensure that we don't sync the object back to it.
for example in a put/delete race during full sync(https://tracker.ceph.com/issues/58911)
so, if the same zone ever becomes the destination for subsequent sync requests on the same object, we compare this zone as
the destination zone against the zone entries in replication trace and because it's entry is already present in the trace,
the sync operation returns -ERR_NOT_MODIFIED.

Signed-off-by: Shilpa Jagannath <smanjara@redhat.com>
src/rgw/driver/rados/rgw_rados.cc
src/rgw/driver/rados/rgw_sal_rados.cc
src/test/rgw/rgw_multi/tests.py