mirror of https://github.com/minio/minio.git
Show offline nodes after a fixed number of init retry (#3107)
This commit is contained in:
parent
0f32efb825
commit
8871eb8e1e
|
@ -196,9 +196,16 @@ func retryFormattingDisks(firstDisk bool, firstEndpoint string, storageDisks []S
|
||||||
defer close(doneCh)
|
defer close(doneCh)
|
||||||
|
|
||||||
// Wait on the jitter retry loop.
|
// Wait on the jitter retry loop.
|
||||||
for range newRetryTimer(time.Second, time.Second*30, MaxJitter, doneCh) {
|
for retryCounter := range newRetryTimer(time.Second, time.Second*30, MaxJitter, doneCh) {
|
||||||
// Attempt to load all `format.json`.
|
// Attempt to load all `format.json`.
|
||||||
formatConfigs, sErrs := loadAllFormats(storageDisks)
|
formatConfigs, sErrs := loadAllFormats(storageDisks)
|
||||||
|
if retryCounter > 5 {
|
||||||
|
for i, e := range sErrs {
|
||||||
|
if e == errDiskNotFound {
|
||||||
|
console.Printf("%s still unreachable.\n", storageDisks[i])
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
// Check if this is a XL or distributed XL, anything > 1 is considered XL backend.
|
// Check if this is a XL or distributed XL, anything > 1 is considered XL backend.
|
||||||
if len(formatConfigs) > 1 {
|
if len(formatConfigs) > 1 {
|
||||||
switch prepForInitXL(firstDisk, sErrs, len(storageDisks)) {
|
switch prepForInitXL(firstDisk, sErrs, len(storageDisks)) {
|
||||||
|
|
|
@ -58,8 +58,8 @@ var globalRandomSource = rand.New(&lockedRandSource{
|
||||||
|
|
||||||
// newRetryTimer creates a timer with exponentially increasing delays
|
// newRetryTimer creates a timer with exponentially increasing delays
|
||||||
// until the maximum retry attempts are reached.
|
// until the maximum retry attempts are reached.
|
||||||
func newRetryTimer(unit time.Duration, cap time.Duration, jitter float64, doneCh chan struct{}) <-chan struct{} {
|
func newRetryTimer(unit time.Duration, cap time.Duration, jitter float64, doneCh chan struct{}) <-chan int {
|
||||||
attemptCh := make(chan struct{})
|
attemptCh := make(chan int)
|
||||||
|
|
||||||
// computes the exponential backoff duration according to
|
// computes the exponential backoff duration according to
|
||||||
// https://www.awsarchitectureblog.com/2015/03/backoff.html
|
// https://www.awsarchitectureblog.com/2015/03/backoff.html
|
||||||
|
@ -89,7 +89,7 @@ func newRetryTimer(unit time.Duration, cap time.Duration, jitter float64, doneCh
|
||||||
for {
|
for {
|
||||||
select {
|
select {
|
||||||
// Attempts starts.
|
// Attempts starts.
|
||||||
case attemptCh <- struct{}{}:
|
case attemptCh <- nextBackoff:
|
||||||
nextBackoff++
|
nextBackoff++
|
||||||
case <-globalWakeupCh:
|
case <-globalWakeupCh:
|
||||||
// Reset nextBackoff to reduce the subsequent wait and re-read
|
// Reset nextBackoff to reduce the subsequent wait and re-read
|
||||||
|
|
Loading…
Reference in New Issue