diff --git a/cmd/erasure-object.go b/cmd/erasure-object.go index 2c77e39c1..6ef0d8264 100644 --- a/cmd/erasure-object.go +++ b/cmd/erasure-object.go @@ -328,7 +328,9 @@ func (er erasureObjects) getObjectWithFileInfo(ctx context.Context, bucket, obje } if scan != madmin.HealUnknownScan { healOnce.Do(func() { - go healObject(bucket, object, fi.VersionID, scan) + if _, healing := er.getOnlineDisksWithHealing(); !healing { + go healObject(bucket, object, fi.VersionID, scan) + } }) } } @@ -438,7 +440,9 @@ func (er erasureObjects) getObjectFileInfo(ctx context.Context, bucket, object s // if missing metadata can be reconstructed, attempt to reconstruct. if missingBlocks > 0 && missingBlocks < readQuorum { - go healObject(bucket, object, fi.VersionID, madmin.HealNormalScan) + if _, healing := er.getOnlineDisksWithHealing(); !healing { + go healObject(bucket, object, fi.VersionID, madmin.HealNormalScan) + } } return fi, metaArr, onlineDisks, nil