eth: fix data race accessing peer.recentHash
This commit is contained in:
@ -157,7 +157,7 @@ func (pm *ProtocolManager) handle(p *peer) error {
|
||||
}
|
||||
defer pm.removePeer(p.id)
|
||||
|
||||
if err := pm.downloader.RegisterPeer(p.id, p.recentHash, p.requestHashes, p.requestBlocks); err != nil {
|
||||
if err := pm.downloader.RegisterPeer(p.id, p.Head(), p.requestHashes, p.requestBlocks); err != nil {
|
||||
return err
|
||||
}
|
||||
// propagate existing transactions. new transactions appearing
|
||||
@ -303,7 +303,7 @@ func (self *ProtocolManager) handleMsg(p *peer) error {
|
||||
// Mark the hashes as present at the remote node
|
||||
for _, hash := range hashes {
|
||||
p.blockHashes.Add(hash)
|
||||
p.recentHash = hash
|
||||
p.SetHead(hash)
|
||||
}
|
||||
// Schedule all the unknown hashes for retrieval
|
||||
unknown := make([]common.Hash, 0, len(hashes))
|
||||
@ -354,7 +354,7 @@ func (pm *ProtocolManager) importBlock(p *peer, block *types.Block, td *big.Int)
|
||||
|
||||
// Mark the block as present at the remote node (don't duplicate already held data)
|
||||
p.blockHashes.Add(hash)
|
||||
p.recentHash = hash
|
||||
p.SetHead(hash)
|
||||
if td != nil {
|
||||
p.td = td
|
||||
}
|
||||
|
Reference in New Issue
Block a user