relinker errors due to existing similar tombstones
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
OpenStack Object Storage (swift) |
Fix Released
|
Undecided
|
Unassigned |
Bug Description
We've seen many relink errors due to reconciler concurrently DELETEing objects during relink, which leaves tombstones with different inodes in the old and new part power locations.
- The reconciler daemons can make concurrent DELETEs of the same object with the same timestamp.
- concurrent DELETEs (or PUTs) with same X-Timestamp during relink step *can* result in the object server creating different inode files in the old and new part power locations. This is likely to result in tracebacks similar to:
object-server: err Relinking X to Y failed: [Errno 17] File exists: #012Traceback (most recent call last):#012 File "/opt/ss/
but despite the traceback there is a diskfile in both old and new part power locations.
- The relinker will log an error if it fails to relink a file because there is an existing file in the next part power location with a different inode.
e.g.
Error relinking: failed to relink X to Y: [Errno 17] File exists
So when the relinker visits tombstones created by reconcilers it can result in errors being logged and apparent failure to relink.
Note: the symptoms are similar to https:/
Fix proposed to branch: master /review. opendev. org/c/openstack /swift/ +/798849
Review: https:/