proactive deep heal object when a bitrot is detected (#9192)

This commit is contained in:
Bala FA
2020-04-01 19:14:00 +00:00
committed by GitHub
parent 886ae15464
commit 95e89f1712
7 changed files with 111 additions and 29 deletions
+7 -1
View File
@@ -295,7 +295,13 @@ func (xl xlObjects) getObject(ctx context.Context, bucket, object string, startO
// we return from this function.
closeBitrotReaders(readers)
if err != nil {
return toObjectErr(err, bucket, object)
if decodeHealErr, ok := err.(*errDecodeHealRequired); ok {
go deepHealObject(pathJoin(bucket, object))
err = decodeHealErr.err
}
if err != nil {
return toObjectErr(err, bucket, object)
}
}
for i, r := range readers {
if r == nil {