From cdd4e8035d2aa20897d97cece8607c8177e0aacd Mon Sep 17 00:00:00 2001 From: Aleksandr Nogikh Date: Wed, 22 Nov 2023 14:14:07 +0100 Subject: dashboard: don't print error on high memcache contention At peak load times, it can be expected that CAS will require too many iterations. There's no reason to report it as an error. --- dashboard/app/cache.go | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'dashboard/app/cache.go') diff --git a/dashboard/app/cache.go b/dashboard/app/cache.go index 240a6a91f..5867f4782 100644 --- a/dashboard/app/cache.go +++ b/dashboard/app/cache.go @@ -5,6 +5,7 @@ package main import ( "encoding/json" + "errors" "fmt" "net/http" "sort" @@ -280,6 +281,8 @@ func (ri *RequesterInfo) Record(now time.Time, cfg ThrottleConfig) bool { return len(newRequests) <= cfg.Limit } +var ErrThrottleTooManyRetries = errors.New("all attempts to record request failed") + func ThrottleRequest(c context.Context, requesterID string) (bool, error) { cfg := getConfig(c).Throttle if cfg.Empty() || requesterID == "" { @@ -325,5 +328,5 @@ func ThrottleRequest(c context.Context, requesterID string) (bool, error) { } return ok, nil } - return false, fmt.Errorf("all attempts to record request failed") + return false, ErrThrottleTooManyRetries } -- cgit mrf-deployment