From 08f4940e881186fdc93fca71d56a18caef73f1fb Mon Sep 17 00:00:00 2001 From: yyforyongyu Date: Mon, 4 Sep 2023 15:35:17 +0800 Subject: [PATCH] kvdb/sqlbase: fix params used in `randRetryDelay` --- kvdb/sqlbase/db.go | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/kvdb/sqlbase/db.go b/kvdb/sqlbase/db.go index ad0634ae2..7defed2d7 100644 --- a/kvdb/sqlbase/db.go +++ b/kvdb/sqlbase/db.go @@ -234,7 +234,9 @@ func (db *db) Update(f func(tx walletdb.ReadWriteTx) error, // randRetryDelay returns a random retry delay between -50% and +50% of the // configured delay that is doubled for each attempt and capped at a max value. -func randRetryDelay(initialRetryDelay, maxRetryDelay, attempt int) time.Duration { +func randRetryDelay(initialRetryDelay, maxRetryDelay time.Duration, + attempt int) time.Duration { + halfDelay := initialRetryDelay / 2 randDelay := prand.Int63n(int64(initialRetryDelay)) //nolint:gosec @@ -273,8 +275,8 @@ func (db *db) executeTransaction(f func(tx walletdb.ReadWriteTx) error, // should abort the retries. waitBeforeRetry := func(attemptNumber int) bool { retryDelay := randRetryDelay( - attemptNumber, DefaultInitialRetryDelay, - DefaultMaxRetryDelay, + DefaultInitialRetryDelay, DefaultMaxRetryDelay, + attemptNumber, ) log.Debugf("Retrying transaction due to tx serialization "+