From 9972e62d94afe663b3696819a09e554f217833de Mon Sep 17 00:00:00 2001 From: Ben Darnell Date: Wed, 14 Jan 2015 15:27:32 -0500 Subject: [PATCH] raft: Use <= instead of < for heartbeat ticks. In code outside the raft package, we cannot call raft.bcastHeartbeat directly. Instead, to control heartbeats we set heartbeatInterval to 1 and call Tick(). --- raft/raft.go | 2 +- raft/raft_paper_test.go | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/raft/raft.go b/raft/raft.go index 374d12fe6..f182b6d5b 100644 --- a/raft/raft.go +++ b/raft/raft.go @@ -346,7 +346,7 @@ func (r *raft) tickElection() { // tickHeartbeat is run by leaders to send a MsgBeat after r.heartbeatTimeout. func (r *raft) tickHeartbeat() { r.elapsed++ - if r.elapsed > r.heartbeatTimeout { + if r.elapsed >= r.heartbeatTimeout { r.elapsed = 0 r.Step(pb.Message{From: r.id, Type: pb.MsgBeat}) } diff --git a/raft/raft_paper_test.go b/raft/raft_paper_test.go index 38a54ac18..45da732ab 100644 --- a/raft/raft_paper_test.go +++ b/raft/raft_paper_test.go @@ -120,7 +120,7 @@ func TestLeaderBcastBeat(t *testing.T) { r.appendEntry(pb.Entry{Index: uint64(i) + 1}) } - for i := 0; i <= hi; i++ { + for i := 0; i < hi; i++ { r.tick() }