diff --git a/lib/reversetunnel/srv.go b/lib/reversetunnel/srv.go index 9ccd5a883a1eb..1f3a4426aa4cd 100644 --- a/lib/reversetunnel/srv.go +++ b/lib/reversetunnel/srv.go @@ -613,8 +613,6 @@ func (s *server) Close() error { func (s *server) DrainConnections(ctx context.Context) error { // Ensure listener is closed before sending reconnects. err := s.srv.Close() - s.srv.Wait(ctx) - s.RLock() s.log.Debugf("Advising reconnect to local site: %s", s.localSite.GetName()) go s.localSite.adviseReconnect(ctx) @@ -625,6 +623,7 @@ func (s *server) DrainConnections(ctx context.Context) error { } s.RUnlock() + s.srv.Wait(ctx) return trace.Wrap(err) }