diff --git a/enterprise/replicasync/replicasync.go b/enterprise/replicasync/replicasync.go index e9df4c3c58f93..6f8c25a65cc49 100644 --- a/enterprise/replicasync/replicasync.go +++ b/enterprise/replicasync/replicasync.go @@ -216,6 +216,12 @@ func (m *Manager) subscribe(ctx context.Context) error { func (m *Manager) syncReplicas(ctx context.Context) error { m.closeMutex.Lock() + select { + case <-m.closed: + m.closeMutex.Unlock() + return xerrors.New("manager is closed") + default: + } m.closeWait.Add(1) m.closeMutex.Unlock() defer m.closeWait.Done()