rgw/multisite: fix sync requests on existing objects#65479
Conversation
|
from https://tracker.ceph.com/issues/72950:
for object uploads/overwrites, the new object starts with a fresh |
864b814 to
bb5b58f
Compare
hmm I added a change to set_attrs() to erase the attr. but I don't think it is clearing it. not sure what is missing. |
bb5b58f to
a684c39
Compare
a684c39 to
af5adab
Compare
|
pr testing completed : https://tracker.ceph.com/issues/73008 and got approved by @ivancich |
hi @anrao19 i pushed new changes to the pr. sorry we will have to re-run it once approved. thanks! |
cbodley
left a comment
There was a problem hiding this comment.
the op.rmxattr() changes look good 👍
…r 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>
af5adab to
e1ac09e
Compare
Hi @smanjara , Could you please let me know once pr is ready for re-test, for Now i will remove tables added |
|
@smanjara : I see that this code change involves calling "set_canned_acl". The QA run is also seeing this error The specific error occurs here: https://qa-proxy.ceph.com/teuthology/anuchaithra-2025-09-27_12:21:44-rgw-wip-anrao3-testing-2025-09-27-1011-distro-default-smithi/8522524/teuthology.log The full run is here: https://pulpito.ceph.com/anuchaithra-2025-09-27_12:21:44-rgw-wip-anrao3-testing-2025-09-27-1011-distro-default-smithi/ I'm going to remove the |
It looks like @cbodley is narrowing in on the issue. So I believe this can now be merged. |
resolves https://tracker.ceph.com/issues/72950
the fix here resets 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.
Contribution Guidelines
To sign and title your commits, please refer to Submitting Patches to Ceph.
If you are submitting a fix for a stable branch (e.g. "quincy"), please refer to Submitting Patches to Ceph - Backports for the proper workflow.
When filling out the below checklist, you may click boxes directly in the GitHub web UI. When entering or editing the entire PR message in the GitHub web UI editor, you may also select a checklist item by adding an
xbetween the brackets:[x]. Spaces and capitalization matter when checking off items this way.Checklist
Show available Jenkins commands
jenkins test classic perfJenkins Job | Jenkins Job Definitionjenkins test crimson perfJenkins Job | Jenkins Job Definitionjenkins test signedJenkins Job | Jenkins Job Definitionjenkins test make checkJenkins Job | Jenkins Job Definitionjenkins test make check arm64Jenkins Job | Jenkins Job Definitionjenkins test submodulesJenkins Job | Jenkins Job Definitionjenkins test dashboardJenkins Job | Jenkins Job Definitionjenkins test dashboard cephadmJenkins Job | Jenkins Job Definitionjenkins test apiJenkins Job | Jenkins Job Definitionjenkins test docsReadTheDocs | Github Workflow Definitionjenkins test ceph-volume allJenkins Jobs | Jenkins Jobs Definitionjenkins test windowsJenkins Job | Jenkins Job Definitionjenkins test rook e2eJenkins Job | Jenkins Job Definition