consensus: start the timeout ticker before replay (backport #7844)

This commit is contained in:
M. J. Fromberger
2022-03-07 09:21:49 -05:00
committed by William Banfield
parent db60bbad54
commit ffe5c564b7
+9 -9
View File
@@ -305,6 +305,15 @@ func (cs *State) OnStart() 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(); err != nil {
return err
}
// We may have lost some votes if the process crashed reload from consensus
// log to catchup.
if cs.doWALCatchup {
@@ -361,15 +370,6 @@ func (cs *State) OnStart() 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(); err != nil {
return err
}
// Double Signing Risk Reduction
if err := cs.checkDoubleSigningRisk(cs.Height); err != nil {
return err