aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorzelig <viktor.tron@gmail.com>2015-04-09 13:31:06 +0800
committerzelig <viktor.tron@gmail.com>2015-04-09 20:58:35 +0800
commita009132c2429adca5ba058f46c0a460b287a4407 (patch)
tree6fae21043d908d2d4a73d0fa2aa87e900f0e1e33
parent0e2bc23148731a2e9fbb22885aced057e308335a (diff)
downloaddexon-a009132c2429adca5ba058f46c0a460b287a4407.tar
dexon-a009132c2429adca5ba058f46c0a460b287a4407.tar.gz
dexon-a009132c2429adca5ba058f46c0a460b287a4407.tar.bz2
dexon-a009132c2429adca5ba058f46c0a460b287a4407.tar.lz
dexon-a009132c2429adca5ba058f46c0a460b287a4407.tar.xz
dexon-a009132c2429adca5ba058f46c0a460b287a4407.tar.zst
dexon-a009132c2429adca5ba058f46c0a460b287a4407.zip
oops peer unlocked before return - fixes deadlock
-rw-r--r--blockpool/blockpool.go1
-rw-r--r--blockpool/peers.go1
2 files changed, 2 insertions, 0 deletions
diff --git a/blockpool/blockpool.go b/blockpool/blockpool.go
index 2340eadae..7a65768c7 100644
--- a/blockpool/blockpool.go
+++ b/blockpool/blockpool.go
@@ -384,6 +384,7 @@ func (self *BlockPool) AddBlockHashes(next func() (common.Hash, bool), peerId st
// first check if we are building the head section of a peer's chain
if bestpeer.parentHash == hash {
if self.hasBlock(bestpeer.currentBlockHash) {
+ bestpeer.lock.RUnlock()
return
}
/*
diff --git a/blockpool/peers.go b/blockpool/peers.go
index 8a52545df..6109ca4b4 100644
--- a/blockpool/peers.go
+++ b/blockpool/peers.go
@@ -472,6 +472,7 @@ func (self *peer) getBlockHashes() bool {
} else {
// XXX added currentBlock check (?)
if self.currentBlock != nil && self.currentBlock.Td != nil && !self.currentBlock.Queued() {
+ plog.DebugDetailf("HeadSection: <%s> inserted %s to blockchain... check TD %v =?= %v", self.id, hex(self.parentHash), self.td, self.currentBlock.Td)
if self.td.Cmp(self.currentBlock.Td) != 0 {
self.addError(ErrIncorrectTD, "on block %x", self.currentBlockHash)
self.bp.status.badPeers[self.id]++