From ef1b28fdf150caa1f60f58101bccf1298e66caf2 Mon Sep 17 00:00:00 2001 From: Simon Schubert Date: Wed, 16 Nov 2016 13:54:28 +0100 Subject: [PATCH] sbft: don't act as primary if we're not active in view Change-Id: Icab2222cae589f22e7e63050fe043ae56d5ea737 Signed-off-by: Simon Schubert --- orderer/sbft/simplebft/request.go | 4 ++-- orderer/sbft/simplebft/simplebft_test.go | 6 ++++++ 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/orderer/sbft/simplebft/request.go b/orderer/sbft/simplebft/request.go index c1a269409cd..da911346646 100644 --- a/orderer/sbft/simplebft/request.go +++ b/orderer/sbft/simplebft/request.go @@ -24,7 +24,7 @@ func (s *SBFT) Request(req []byte) { } func (s *SBFT) handleRequest(req *Request, src uint64) { - if s.isPrimary() { + if s.isPrimary() && s.activeView { s.batch = append(s.batch, req) if s.batchSize() >= s.config.BatchSizeBytes { s.maybeSendNextBatch() @@ -56,7 +56,7 @@ func (s *SBFT) maybeSendNextBatch() { s.batchTimer = nil } - if !s.isPrimary() { + if !s.isPrimary() || !s.activeView { return } diff --git a/orderer/sbft/simplebft/simplebft_test.go b/orderer/sbft/simplebft/simplebft_test.go index ec85ef1e5fa..e583ed83fc3 100644 --- a/orderer/sbft/simplebft/simplebft_test.go +++ b/orderer/sbft/simplebft/simplebft_test.go @@ -352,6 +352,7 @@ func TestRestart(t *testing.T) { for _, r := range repls { r.sendViewChange() } + sys.Run() r1 := []byte{1, 2, 3} repls[0].Request(r1) @@ -429,6 +430,7 @@ func TestRestartAfterPrepare(t *testing.T) { for _, r := range repls { r.sendViewChange() } + sys.Run() r1 := []byte{1, 2, 3} repls[0].Request(r1) @@ -497,6 +499,7 @@ func TestRestartAfterCommit(t *testing.T) { for _, r := range repls { r.sendViewChange() } + sys.Run() r1 := []byte{1, 2, 3} repls[0].Request(r1) @@ -565,6 +568,7 @@ func TestRestartAfterCheckpoint(t *testing.T) { for _, r := range repls { r.sendViewChange() } + sys.Run() r1 := []byte{1, 2, 3} repls[0].Request(r1) @@ -653,6 +657,7 @@ func TestErroneousViewChange(t *testing.T) { for _, r := range repls { r.sendViewChange() } + sys.Run() r1 := []byte{1, 2, 3} repls[0].Request(r1) @@ -717,6 +722,7 @@ func TestRestartMissedViewChange(t *testing.T) { r.sendViewChange() } } + sys.Run() r2 := []byte{3, 1, 2} repls[1].Request(r2)