]> git-server-git.apps.pok.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)
committerThomas Serlin <tserlin@redhat.com>
Mon, 22 Sep 2025 19:18:18 +0000 (15:18 -0400)
commit9cfc207af87c53d974d5d429b0ed0a3aab523caf
tree876dbec1844e58c1a33e1677ab04f9dcdd963a7a
parent38fc5140278d473d565ce3659382a269b9401dd7
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>
(cherry picked from commit e1ac09ec912ced1c7316c8a18dfad891423be30e)
src/rgw/driver/rados/rgw_rados.cc
src/rgw/driver/rados/rgw_sal_rados.cc
src/test/rgw/rgw_multi/tests.py