From 1b3ba8a7adfe5fd2ebfbb5b78ad778213cd365ba Mon Sep 17 00:00:00 2001 From: Trong Huu Nguyen Date: Thu, 16 Nov 2023 14:11:05 +0100 Subject: [PATCH] refactor(session): skip logging for client context cancellations We use the context from the inbound http.Request, which means that this error generally occurs due to the user agent disconnecting mid-request. Skip logging these errors as they're not really actionable. --- pkg/session/session_manager.go | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/pkg/session/session_manager.go b/pkg/session/session_manager.go index 49a3418..445ac0d 100644 --- a/pkg/session/session_manager.go +++ b/pkg/session/session_manager.go @@ -113,12 +113,16 @@ func (in *manager) GetOrRefresh(r *http.Request) (*Session, error) { } refreshed, err := in.Refresh(r, sess) + if err == nil { + return refreshed, nil + } + if errors.Is(err, ErrInvalidExternal) || errors.Is(err, ErrInvalid) { return nil, err - } else if err != nil { + } + + if !errors.Is(err, context.Canceled) { mw.LogEntryFrom(r).Warnf("session: could not refresh tokens; falling back to existing tokens: %+v", err) - } else { - sess = refreshed } return sess, nil @@ -166,7 +170,7 @@ func (in *manager) Refresh(r *http.Request, sess *Session) (*Session, error) { } defer func(lock Lock, ctx context.Context) { err := lock.Release(ctx) - if err != nil { + if err != nil && !errors.Is(err, context.Canceled) { logger.Warnf("session: releasing lock: %+v", err) } }(lock, ctx)