From 4a9ef121231c3e8b5f3cfdec97fcf42946f32688 Mon Sep 17 00:00:00 2001 From: TeoV Date: Sun, 30 Aug 2020 14:54:47 +0300 Subject: [PATCH] Exit automatic debit loops if debitStop channel was nil-led, fixes #2354 --- sessions/sessions.go | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/sessions/sessions.go b/sessions/sessions.go index eb1c893cd..fff5f8ac3 100644 --- a/sessions/sessions.go +++ b/sessions/sessions.go @@ -520,6 +520,11 @@ func (sS *SessionS) debitLoopSession(s *Session, sRunIdx int, } for { s.Lock() + if s.debitStop == nil { + // session already closed (most probably from sessionEnd), fixes concurrency + s.Unlock() + return + } var maxDebit time.Duration if maxDebit, err = sS.debitSession(s, sRunIdx, dbtIvl, nil); err != nil { utils.Logger.Warning(