Skip to content

Commit

Permalink
les: fix dead lock (#20828)
Browse files Browse the repository at this point in the history
  • Loading branch information
rjl493456442 committed Mar 27, 2020
1 parent d6c5f24 commit 62cd943
Showing 1 changed file with 1 addition and 2 deletions.
3 changes: 1 addition & 2 deletions les/peer.go
Original file line number Diff line number Diff line change
Expand Up @@ -531,8 +531,6 @@ func (p *serverPeer) getTxRelayCost(amount, size int) uint64 {
// HasBlock checks if the peer has a given block
func (p *serverPeer) HasBlock(hash common.Hash, number uint64, hasState bool) bool {
p.lock.RLock()
defer p.lock.RUnlock()

head := p.headInfo.Number
var since, recent uint64
if hasState {
Expand All @@ -543,6 +541,7 @@ func (p *serverPeer) HasBlock(hash common.Hash, number uint64, hasState bool) bo
recent = p.chainRecent
}
hasBlock := p.hasBlock
p.lock.RUnlock()

return head >= number && number >= since && (recent == 0 || number+recent+4 > head) && hasBlock != nil && hasBlock(hash, number, hasState)
}
Expand Down

0 comments on commit 62cd943

Please sign in to comment.