From 2a79ea033206acfa74323e1719a869f8f6a69f1c Mon Sep 17 00:00:00 2001 From: Harshavardhana Date: Mon, 22 Feb 2021 16:29:53 -0800 Subject: [PATCH] isServerResolvable its sufficient to check server is reachable (#11609) using isServerResolvable for expiration can lead to chicken and egg problems, a lock might expire knowingly when server is booting up causing perpetual locks getting expired. --- cmd/lock-rest-server.go | 7 +++---- cmd/prepare-storage.go | 8 -------- 2 files changed, 3 insertions(+), 12 deletions(-) diff --git a/cmd/lock-rest-server.go b/cmd/lock-rest-server.go index 757e4bcf1..712659b4d 100644 --- a/cmd/lock-rest-server.go +++ b/cmd/lock-rest-server.go @@ -33,7 +33,7 @@ import ( const ( // Lock maintenance interval. - lockMaintenanceInterval = 15 * time.Second + lockMaintenanceInterval = 1 * time.Minute // Lock validity check interval. lockValidityCheckInterval = 30 * time.Second @@ -353,7 +353,7 @@ func startLockMaintenance(ctx context.Context) { break } - // Initialize a new ticker with 15secs between each ticks. + // Initialize a new ticker with 1 minute between each ticks. lkTimer := time.NewTimer(lockMaintenanceInterval) // Stop the timer upon returning. defer lkTimer.Stop() @@ -362,8 +362,7 @@ func startLockMaintenance(ctx context.Context) { // Start with random sleep time, so as to avoid // "synchronous checks" between servers - duration := time.Duration(r.Float64() * float64(lockMaintenanceInterval)) - time.Sleep(duration) + time.Sleep(time.Duration(r.Float64() * float64(lockMaintenanceInterval))) for { // Verifies every minute for locks held more than 2 minutes. diff --git a/cmd/prepare-storage.go b/cmd/prepare-storage.go index 558221973..6df99a44b 100644 --- a/cmd/prepare-storage.go +++ b/cmd/prepare-storage.go @@ -205,14 +205,6 @@ func isServerResolvable(endpoint Endpoint, timeout time.Duration) error { } xhttp.DrainBody(resp.Body) - if resp.StatusCode != http.StatusOK { - return StorageErr(resp.Status) - } - - if resp.Header.Get(xhttp.MinIOServerStatus) == unavailable { - return StorageErr(unavailable) - } - return nil }