From 9918abaaa13b8d1764c7f0b7b0c7c8ddd62025be Mon Sep 17 00:00:00 2001 From: Chen Kai <281165273grape@gmail.com> Date: Wed, 19 Jun 2024 09:29:39 +0800 Subject: [PATCH] fix:add lock when del enr Signed-off-by: Chen Kai <281165273grape@gmail.com> --- p2p/discover/api.go | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/p2p/discover/api.go b/p2p/discover/api.go index 19af1647f3..d39702d9f5 100644 --- a/p2p/discover/api.go +++ b/p2p/discover/api.go @@ -131,6 +131,8 @@ func (d *DiscV5API) DeleteEnr(nodeId string) (bool, error) { return false, errors.New("record not in local routing table") } + d.DiscV5.tab.mutex.Lock() + defer d.DiscV5.tab.mutex.Unlock() b := d.DiscV5.tab.bucket(n.ID()) d.DiscV5.tab.deleteInBucket(b, n.ID()) return true, nil @@ -297,6 +299,8 @@ func (p *PortalProtocolAPI) DeleteEnr(nodeId string) (bool, error) { return false, nil } + p.portalProtocol.table.mutex.Lock() + defer p.portalProtocol.table.mutex.Unlock() b := p.portalProtocol.table.bucket(n.ID()) p.portalProtocol.table.deleteInBucket(b, n.ID()) return true, nil