From a9d8039082eee39a2d58e2d38e7d637b9bf442df Mon Sep 17 00:00:00 2001 From: Jae Kwon Date: Mon, 17 Oct 2016 11:29:43 -0700 Subject: [PATCH] Fix peer memleak; stop goroutine when peer is offline --- consensus/state.go | 1 + mempool/reactor.go | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/consensus/state.go b/consensus/state.go index ee566469f..bff351aa9 100644 --- a/consensus/state.go +++ b/consensus/state.go @@ -1196,6 +1196,7 @@ func (cs *ConsensusState) tryFinalizeCommit(height int) { } if !cs.ProposalBlock.HashesTo(hash) { // TODO: this happens every time if we're not a validator (ugly logs) + // TODO: ^^ wait, why does it matter that we're a validator? log.Warn("Attempt to finalize failed. We don't have the commit block.") return } diff --git a/mempool/reactor.go b/mempool/reactor.go index 9e2888b1b..626315de9 100644 --- a/mempool/reactor.go +++ b/mempool/reactor.go @@ -109,7 +109,7 @@ func (memR *MempoolReactor) broadcastTxRoutine(peer Peer) { var next *clist.CElement for { - if !memR.IsRunning() { + if !memR.IsRunning() || !peer.IsRunning() { return // Quit! } if next == nil {