diff --git a/common/stats/session/session.go b/common/stats/session/session.go index 3c11967..f83470f 100644 --- a/common/stats/session/session.go +++ b/common/stats/session/session.go @@ -120,14 +120,17 @@ func (s *simpleSessionStater) GetSession(key interface{}) *stats.Session { } func (s *simpleSessionStater) RemoveSession(key interface{}) { - s.mux.Lock() - defer s.mux.Unlock() - if sess, ok := s.sessions.Load(key); ok { + // move to completed sessions + s.mux.Lock() s.completedSessions = append(s.completedSessions, *(sess.(*stats.Session))) if len(s.completedSessions) > maxCompletedSessions { s.completedSessions = s.completedSessions[1:] } + s.mux.Unlock() + + s.sessions.Delete(key) + } else { + log.Warnf("session key [%v] not found", key) } - s.sessions.Delete(key) }