Skip to content

Commit 1a3b5ec

Browse files
Merge pull request #2444 from mtrmac/jitter
Add some jitter to pkg/retry
2 parents 01126e4 + 2c9191c commit 1a3b5ec

File tree

1 file changed

+3
-0
lines changed

1 file changed

+3
-0
lines changed

pkg/retry/retry.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import (
44
"context"
55
"io"
66
"math"
7+
"math/rand/v2"
78
"net"
89
"net/http"
910
"net/url"
@@ -47,6 +48,8 @@ func IfNecessary(ctx context.Context, operation func() error, options *Options)
4748
delay = options.Delay
4849
}
4950
logrus.Warnf("Failed, retrying in %s ... (%d/%d). Error: %v", delay, attempt+1, options.MaxRetry, err)
51+
delay += rand.N(delay / 10) // 10 % jitter so that a failure blip doesn’t cause a deterministic stampede
52+
logrus.Debugf("Retry delay with added jitter: %s", delay)
5053
select {
5154
case <-time.After(delay):
5255
// Do nothing.

0 commit comments

Comments
 (0)