Compare commits

...

2 Commits

Author SHA1 Message Date
William Banfield
ec3e8baeea additional fixes 2022-06-03 16:59:47 -04:00
William Banfield
f3a25d48a9 consensus: fix consensus timeouts when using defaults 2022-06-03 16:52:26 -04:00

View File

@@ -519,10 +519,11 @@ func (cs *State) getOnStopCh() chan *cstypes.RoundState {
func (cs *State) OnStop() {
// If the node is committing a new block, wait until it is finished!
if cs.GetRoundState().Step == cstypes.RoundStepCommit {
ct := time.Until(cs.commitTime(time.Now()))
select {
case <-cs.getOnStopCh():
case <-time.After(cs.state.ConsensusParams.Timeout.Commit):
cs.logger.Error("OnStop: timeout waiting for commit to finish", "time", cs.state.ConsensusParams.Timeout.Commit)
case <-time.After(ct):
cs.logger.Error("OnStop: timeout waiting for commit to finish", "time", ct)
}
}
@@ -1389,7 +1390,7 @@ func (cs *State) defaultDecideProposal(ctx context.Context, height int64, round
p := proposal.ToProto()
// wait the max amount we would wait for a proposal
ctxto, cancel := context.WithTimeout(ctx, cs.state.ConsensusParams.Timeout.Propose)
ctxto, cancel := context.WithTimeout(ctx, cs.proposeTimeout(round))
defer cancel()
if err := cs.privValidator.SignProposal(ctxto, cs.state.ChainID, p); err == nil {
proposal.Signature = p.Signature
@@ -2796,7 +2797,8 @@ func (cs *State) voteTimeout(round int32) time.Duration {
}
func (cs *State) commitTime(t time.Time) time.Time {
c := cs.state.ConsensusParams.Timeout.Commit
tp := cs.state.ConsensusParams.Timeout.TimeoutParamsOrDefaults()
c := tp.Commit
if cs.config.UnsafeCommitTimeoutOverride != 0 {
c = cs.config.UnsafeProposeTimeoutOverride
}
@@ -2804,10 +2806,12 @@ func (cs *State) commitTime(t time.Time) time.Time {
}
func (cs *State) bypassCommitTimeout() bool {
tp := cs.state.ConsensusParams.Timeout.TimeoutParamsOrDefaults()
b := tp.BypassCommitTimeout
if cs.config.UnsafeBypassCommitTimeoutOverride != nil {
return *cs.config.UnsafeBypassCommitTimeoutOverride
}
return cs.state.ConsensusParams.Timeout.BypassCommitTimeout
return b
}
func (cs *State) calculateProposalTimestampDifferenceMetric() {