From 5412d730c15cd6829edca4236823359ba9d21f56 Mon Sep 17 00:00:00 2001 From: Harshavardhana Date: Sat, 31 Oct 2020 14:10:12 -0700 Subject: [PATCH] simplify monitoring doesn't need to be canceled (#10803) connect disks monitoring doesn't need to be canceled upon drive replacement, since we only need to replace the newly replaced drive. --- cmd/erasure-sets.go | 16 +++------------- 1 file changed, 3 insertions(+), 13 deletions(-) diff --git a/cmd/erasure-sets.go b/cmd/erasure-sets.go index 8685d5375..674b5adf8 100644 --- a/cmd/erasure-sets.go +++ b/cmd/erasure-sets.go @@ -83,8 +83,7 @@ type erasureSets struct { setCount, setDriveCount int listTolerancePerSet int - monitorContextCancel context.CancelFunc - disksConnectEvent chan diskConnectInfo + disksConnectEvent chan diskConnectInfo // Distribution algorithm of choice. distributionAlgo string @@ -419,11 +418,8 @@ func newErasureSets(ctx context.Context, endpoints Endpoints, storageDisks []Sto GlobalStaleUploadsCleanupInterval, GlobalStaleUploadsExpiry) } - mctx, mctxCancel := context.WithCancel(ctx) - s.monitorContextCancel = mctxCancel - // Start the disk monitoring and connect routine. - go s.monitorAndConnectEndpoints(mctx, defaultMonitorConnectEndpointInterval) + go s.monitorAndConnectEndpoints(ctx, defaultMonitorConnectEndpointInterval) go s.maintainMRFList() go s.healMRFRoutine() @@ -1265,8 +1261,6 @@ func (s *erasureSets) HealFormat(ctx context.Context, dryRun bool) (res madmin.H return madmin.HealResultItem{}, err } - s.monitorContextCancel() // turn-off disk monitoring and replace format. - s.erasureDisksMu.Lock() for index, format := range tmpNewFormats { @@ -1287,14 +1281,10 @@ func (s *erasureSets) HealFormat(ctx context.Context, dryRun bool) (res madmin.H s.endpointStrings[m*s.setDriveCount+n] = storageDisks[index].String() } - // Replace with new reference format. + // Replace reference format with what was loaded from disks. s.format = refFormat s.erasureDisksMu.Unlock() - - mctx, mctxCancel := context.WithCancel(GlobalContext) - s.monitorContextCancel = mctxCancel - go s.monitorAndConnectEndpoints(mctx, defaultMonitorConnectEndpointInterval) } return res, nil