fix: healing across pools removing dangling objects (#13990)

adds other simplifications to the code when running
namespace heals across pools.
This commit is contained in:
Harshavardhana
2021-12-25 09:01:44 -08:00
committed by GitHub
parent 7e3a7d7044
commit b883803b21
4 changed files with 307 additions and 112 deletions

View File

@@ -954,13 +954,9 @@ func (er erasureObjects) HealObject(ctx context.Context, bucket, object, version
// This allows to quickly check if all is ok or all are missing.
_, errs := readAllFileInfo(healCtx, storageDisks, bucket, object, versionID, false)
if isAllNotFound(errs) {
err = toObjectErr(errFileNotFound, bucket, object)
if versionID != "" {
err = toObjectErr(errFileVersionNotFound, bucket, object, versionID)
}
// Nothing to do, file is already gone.
return er.defaultHealResult(FileInfo{}, storageDisks, storageEndpoints,
errs, bucket, object, versionID), err
errs, bucket, object, versionID), nil
}
// Heal the object.