From 9e69615451ef9858d6467d97e5e817bef1ae80d7 Mon Sep 17 00:00:00 2001 From: "M. J. Fromberger" Date: Thu, 17 Feb 2022 12:18:19 -0800 Subject: [PATCH] consensus: start the timeout ticker before replay (#7844) --- internal/consensus/state.go | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/internal/consensus/state.go b/internal/consensus/state.go index f8f832381..f8b5dfb4a 100644 --- a/internal/consensus/state.go +++ b/internal/consensus/state.go @@ -373,6 +373,15 @@ func (cs *State) OnStart(ctx context.Context) error { } } + // we need the timeoutRoutine for replay so + // we don't block on the tick chan. + // NOTE: we will get a build up of garbage go routines + // firing on the tockChan until the receiveRoutine is started + // to deal with them (by that point, at most one will be valid) + if err := cs.timeoutTicker.Start(ctx); err != nil { + return err + } + // We may have lost some votes if the process crashed reload from consensus // log to catchup. if cs.doWALCatchup { @@ -427,15 +436,6 @@ func (cs *State) OnStart(ctx context.Context) error { return err } - // we need the timeoutRoutine for replay so - // we don't block on the tick chan. - // NOTE: we will get a build up of garbage go routines - // firing on the tockChan until the receiveRoutine is started - // to deal with them (by that point, at most one will be valid) - if err := cs.timeoutTicker.Start(ctx); err != nil { - return err - } - // Double Signing Risk Reduction if err := cs.checkDoubleSigningRisk(cs.Height); err != nil { return err