Bug #72950
openrgw-multisite: object set_attrs fail to sync from secondary to primary
0%
Description
create an object on zone A and let it sync to zone B. now set an object attribute like tagging or putacl, &c. from zone B. it fails to sync to zone A.
this is because when the initial object creation syncs from zone A, datasync on destination zone B adds zone A into source_trace_entry which is stored as an object attr RGW_ATTR_OBJ_REPLICATION_TRACE. now when we add/modify any attributes on this object in the opposite direction, where zone A becomes the destination zone, we add zone A into dst_zone_trace. during a GetObj on zone B, we then go on to compare if we have already synced to zone A by comparing dst_zone_trace with entries stored in RGW_ATTR_OBJ_REPLICATION_TRACE and since zone A already exists in the trace as part of the initial object create op, we return ERR_NOT_MODIFIED, thus failing to sync the obj attribute.
this comparison check was added in https://github.com/ceph/ceph/pull/51715 that tried to solve a put/delete race. but unfortunately, we did not account for
object attr modifications coming from other zones.
Updated by Casey Bodley 6 months ago
- Status changed from Fix Under Review to Pending Backport
- Backport changed from tentacle reef squid to tentacle squid
Updated by Upkeep Bot 6 months ago
- Merge Commit set to c45212043a2da3db2935a320d764ad955b5a36a3
- Fixed In set to v20.3.0-3343-gc45212043a
- Upkeep Timestamp set to 2025-09-30T14:12:17+00:00
Updated by Upkeep Bot 6 months ago
- Copied to Backport #73325: squid: rgw-multisite: object set_attrs fail to sync from secondary to primary added
Updated by Upkeep Bot 6 months ago
- Copied to Backport #73326: tentacle: rgw-multisite: object set_attrs fail to sync from secondary to primary added