reconciler should skip objects in policies involved in a partition power increase
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
OpenStack Object Storage (swift) |
Fix Released
|
High
|
Unassigned |
Bug Description
The object relinker step does not cope well with object files with same name but different inodes existing in the current and next part power. These file pairs can cause relinking to log errors and confuse whether relinking has succeeded.
These circumstances can be created by a process writing the same object concurrently and specifying the same x-timestamp. The reconciler does precisely that. The scenario is explained in more detail in https:/
Possible fixes:
* The reconciler should NOT migrate objects that are either in or destined for a policy that is currently being relinked, much like how the replicator skips any such policy. Note that if either the new or old policy are being relinked then the reconciler should not attempt to move an object.
and/or
* The reconciler should be enhanced to make less (no) concurrent requests with same x-timestamp to the same object.
A workaround is to stop all reconciler processes on all nodes before deploying a ring with part_power and next_part_power and starting the relink step of a part power increase. The reconcilers can be started again after the relink step is complete and a new ring has been deployed with part_power == next_part_power.
Changed in swift: | |
status: | New → Confirmed |
importance: | Undecided → High |
Fix proposed to branch: master /review. opendev. org/c/openstack /swift/ +/799561
Review: https:/