container sync breaks DLO manifests referring to the same container
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
OpenStack Object Storage (swift) |
Confirmed
|
Wishlist
|
Unassigned |
Bug Description
A follow-up to https:/
Suppose that you have two containers, e.g. "source" and "target", connected by a container-sync relation. Also suppose that the source container contains a DLO which refers to segments in the same container, e.g. "X-Object-Manifest: source/segments".
This DLO will be synced to the target container, but the manifest will still refer to the old container name, thus probably producing a broken object on the receiving side. The more plausible behavior would be for the container sync to recognize that the segments are in the same container, and rewrite the X-Object-Manifest header to refer to the target container when the DLO is created on the target side.
There is a note here [1] that segments must be sync'd as well as manifests, but it could be clearer that the source and target container names must be the same.
I have improved the container sync docs here [2]
[1] http:// docs.openstack. org/developer/ swift/overview_ container_ sync.html /review. openstack. org/356012
[2] https:/