diff --git a/eth/downloader/peer.go b/eth/downloader/peer.go index 44a6e0f5d736b..fa514f1a43522 100644 --- a/eth/downloader/peer.go +++ b/eth/downloader/peer.go @@ -246,6 +246,7 @@ func (ps *peerSet) Register(p *peerConnection) error { } p.rates = msgrate.NewTracker(ps.rates.MeanCapacities(), ps.rates.MedianRoundTrip()) if err := ps.rates.Track(p.id, p.rates); err != nil { + ps.lock.Unlock() return err } ps.peers[p.id] = p diff --git a/les/downloader/peer.go b/les/downloader/peer.go index 9d3296de2bba2..1113fb26bcf47 100644 --- a/les/downloader/peer.go +++ b/les/downloader/peer.go @@ -359,6 +359,7 @@ func (ps *peerSet) Register(p *peerConnection) error { } p.rates = msgrate.NewTracker(ps.rates.MeanCapacities(), ps.rates.MedianRoundTrip()) if err := ps.rates.Track(p.id, p.rates); err != nil { + ps.lock.Unlock() return err } ps.peers[p.id] = p