From 1a12100790c7f879d0f21fff28b909dbcea01187 Mon Sep 17 00:00:00 2001 From: Maycon Santos Date: Thu, 8 May 2025 11:30:41 +0200 Subject: [PATCH] backoff on sync and reduce starting multiplier --- management/server/account.go | 2 +- management/server/grpcserver.go | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/management/server/account.go b/management/server/account.go index 5c474a343..b2db8f3aa 100644 --- a/management/server/account.go +++ b/management/server/account.go @@ -202,7 +202,7 @@ func BuildManager( if err != nil { initialInterval = 1 } else { - initialInterval = int64(interval) * 10 + initialInterval = int64(interval) * 2 go func() { time.Sleep(30 * time.Second) am.updateAccountPeersBufferInterval.Store(int64(time.Duration(interval) * time.Millisecond)) diff --git a/management/server/grpcserver.go b/management/server/grpcserver.go index 2eae6c1f5..a347bdfbf 100644 --- a/management/server/grpcserver.go +++ b/management/server/grpcserver.go @@ -163,6 +163,8 @@ func getRealIP(ctx context.Context) net.IP { // notifies the connected peer of any updates (e.g. new peers under the same account) func (s *GRPCServer) Sync(req *proto.EncryptedMessage, srv proto.ManagementService_SyncServer) error { if !s.syncLimiter.Allow() { + time.Sleep(time.Second + (time.Millisecond * time.Duration(rand.IntN(20)*100))) + log.Warnf("sync rate limit exceeded for peer %s", req.WgPubKey) return status.Errorf(codes.Internal, "temp rate limit reached") }