From 35a491244919c7a9cbc543779c7fe045f1c4c58a Mon Sep 17 00:00:00 2001 From: Ethan Buchman Date: Wed, 16 Aug 2017 00:43:55 -0400 Subject: [PATCH] dont panic on getVoteBitArray --- consensus/reactor.go | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/consensus/reactor.go b/consensus/reactor.go index fb25c68f6..f4107c653 100644 --- a/consensus/reactor.go +++ b/consensus/reactor.go @@ -918,7 +918,7 @@ func (ps *PeerState) PickVoteToSend(votes types.VoteSetReader) (vote *types.Vote func (ps *PeerState) getVoteBitArray(height, round int, type_ byte) *cmn.BitArray { if !types.IsVoteTypeValid(type_) { - cmn.PanicSanity("Invalid vote type") + return nil } if ps.Height == height { @@ -1029,7 +1029,10 @@ func (ps *PeerState) setHasVote(height int, round int, type_ byte, index int) { logger.Debug("setHasVote(LastCommit)", "lastCommit", ps.LastCommit, "index", index) // NOTE: some may be nil BitArrays -> no side effects. - ps.getVoteBitArray(height, round, type_).SetIndex(index, true) + psVotes := ps.getVoteBitArray(height, round, type_) + if psVotes != nil { + psVotes.SetIndex(index, true) + } } // ApplyNewRoundStepMessage updates the peer state for the new round.