When attempting to sync a container to another cluster, I had the sync halt mid-flight and not ever recover because of an object which was listed in the container but there was nowhere to be found on the object servers. Now, this was obviously a preexisting problem in the cluster, but it might just as well happen because a rebalance operation has rendered the file temporary missing. Container-sync got a 404 from the object servers and the container remained half-synced. There was no way to recover and complete the sync other than DELETEing the file in question.
Additionally, this took some time to debug because the error message presented in such a case is:
elif err.http_status == HTTP_NOT_FOUND:
self.logger.info(_('Not found %(sync_from)r '
'=> %(sync_to)r'),
{'sync_from': '%s/%s' %
(quote(info['account']), quote(info['container'])),
'sync_to': sync_to})
Note how that message does not mention the object at all -- it just assumes that the problem is that the account or container does not exist, which was obviously not the case here.
Fix proposed to branch: master /review. openstack. org/23041
Review: https:/