fix race condition for SetHasAllValidationCommits; "binary" log

filtering
This commit is contained in:
Jae Kwon 2014-12-30 14:45:26 -08:00
parent 69903e5bc2
commit 16c80fd65f
2 changed files with 16 additions and 3 deletions

View File

@ -1,7 +1,18 @@
package binary package binary
import ( import (
"os"
"github.com/tendermint/log15" "github.com/tendermint/log15"
) )
var log = log15.New("module", "binary") var log = log15.New("module", "binary")
func init() {
log.SetHandler(
log15.LvlFilterHandler(
log15.LvlWarn,
log15.StreamHandler(os.Stderr, log15.LogfmtFormat()),
),
)
}

View File

@ -421,7 +421,7 @@ OUTER_LOOP:
continue OUTER_LOOP continue OUTER_LOOP
} else { } else {
log.Debug("No commits to send", "ours", validation.BitArray(), "theirs", prs.Commits) log.Debug("No commits to send", "ours", validation.BitArray(), "theirs", prs.Commits)
ps.SetHasAllValidationCommits() ps.SetHasAllValidationCommits(prs.Height)
} }
} }
@ -569,10 +569,12 @@ func (ps *PeerState) setHasVote(height uint, round uint, type_ byte, index uint)
// When catching up, this helps keep track of whether // When catching up, this helps keep track of whether
// we should send more commit votes from the block (validation) store // we should send more commit votes from the block (validation) store
func (ps *PeerState) SetHasAllValidationCommits() { func (ps *PeerState) SetHasAllValidationCommits(height uint) {
ps.mtx.Lock() ps.mtx.Lock()
defer ps.mtx.Unlock() defer ps.mtx.Unlock()
ps.HasAllValidationCommits = true if ps.Height == height {
ps.HasAllValidationCommits = true
}
} }
func (ps *PeerState) ApplyNewRoundStepMessage(msg *NewRoundStepMessage, rs *RoundState) { func (ps *PeerState) ApplyNewRoundStepMessage(msg *NewRoundStepMessage, rs *RoundState) {