diff --git a/server/reload.go b/server/reload.go index 944f4c99..ed2ac0ce 100644 --- a/server/reload.go +++ b/server/reload.go @@ -1106,8 +1106,17 @@ func (s *Server) reloadAuthorization() { for _, route := range s.routes { routes = append(routes, route) } + var resetCh chan struct{} + if s.sys != nil { + // can't hold the lock as go routine reading it may be waiting for lock as well + resetCh = s.sys.resetCh + } s.mu.Unlock() + if resetCh != nil { + resetCh <- struct{}{} + } + // Close clients that have moved accounts for _, client := range cclients { client.closeConnection(ClientClosed) diff --git a/server/server.go b/server/server.go index 933d57d7..e51134e1 100644 --- a/server/server.go +++ b/server/server.go @@ -515,8 +515,6 @@ func (s *Server) configureAccounts() error { s.mu.Unlock() // acquires server lock separately s.addSystemAccountExports(acc) - // can't hold the lock as go routine reading it may be waiting for lock as well - s.sys.resetCh <- struct{}{} s.mu.Lock() } if err != nil {