From 13b95e71274e6eed250eb1b2d0afee08f79c0251 Mon Sep 17 00:00:00 2001 From: Sam Kleinman Date: Mon, 14 Jun 2021 13:52:46 -0400 Subject: [PATCH] consensus: skip all messages during sync (#6577) Co-authored-by: Aleksandr Bezobchuk --- internal/consensus/reactor.go | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/internal/consensus/reactor.go b/internal/consensus/reactor.go index d26e94825..904ac44ea 100644 --- a/internal/consensus/reactor.go +++ b/internal/consensus/reactor.go @@ -1192,11 +1192,6 @@ func (r *Reactor) handleVoteSetBitsMessage(envelope p2p.Envelope, msgI Message) // It will handle errors and any possible panics gracefully. A caller can handle // any error returned by sending a PeerError on the respective channel. // -// NOTE: We process these messages even when we're fast_syncing. Messages affect -// either a peer state or the consensus state. Peer state updates can happen in -// parallel, but processing of proposals, block parts, and votes are ordered by -// the p2p channel. -// // NOTE: We block on consensus state for proposals, block parts, and votes. func (r *Reactor) handleMessage(chID p2p.ChannelID, envelope p2p.Envelope) (err error) { defer func() { @@ -1206,6 +1201,12 @@ func (r *Reactor) handleMessage(chID p2p.ChannelID, envelope p2p.Envelope) (err } }() + // Just skip the entire message during syncing so that we can + // process fewer messages. + if r.WaitSync() { + return + } + // We wrap the envelope's message in a Proto wire type so we can convert back // the domain type that individual channel message handlers can work with. We // do this here once to avoid having to do it for each individual message type.