From 11b2220696db691cdb0a5ca4962f8d0bc9320075 Mon Sep 17 00:00:00 2001 From: Klaus Post Date: Wed, 17 Feb 2021 10:18:12 -0800 Subject: [PATCH] Don't autoheal if disks are healing (#11558) Don't spawn automatic healing ops if a disk is healing. --- cmd/erasure-object.go | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) 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