diff --git a/consul/snapshot_endpoint.go b/consul/snapshot_endpoint.go index 98e0e41684..367db4b9cf 100644 --- a/consul/snapshot_endpoint.go +++ b/consul/snapshot_endpoint.go @@ -101,9 +101,14 @@ func (s *Server) dispatchSnapshotRequest(args *structs.SnapshotRequest, in io.Re return nil, err } + select { // Tell the leader loop to reassert leader actions since we just // replaced the state store contents. - s.reassertLeaderCh <- struct{}{} + case s.reassertLeaderCh <- struct{}{}: + + // Make sure we don't get stuck during shutdown + case <-s.shutdownCh: + } // Give the caller back an empty reader since there's nothing to // stream back.