From adda1cfd6dad334b6e1e770456a3470fa29bdfcb Mon Sep 17 00:00:00 2001 From: Prem Chaitanya Prathi Date: Thu, 4 Jan 2024 20:03:42 +0530 Subject: [PATCH] fix: handle existing static peer discovered with ENR that causes crash (#990) --- waku/v2/peermanager/peer_manager.go | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/waku/v2/peermanager/peer_manager.go b/waku/v2/peermanager/peer_manager.go index adae21cf..85806d05 100644 --- a/waku/v2/peermanager/peer_manager.go +++ b/waku/v2/peermanager/peer_manager.go @@ -354,8 +354,15 @@ func (pm *PeerManager) AddDiscoveredPeer(p service.PeerData, connectNow bool) { if err == nil && enr.Record().Seq() >= p.ENR.Seq() { return } - pm.logger.Info("peer already found in peerstore, but re-adding it as ENR sequence is higher than locally stored", - logging.HostID("peer", p.AddrInfo.ID), zap.Uint64("newENRSeq", p.ENR.Seq()), zap.Uint64("storedENRSeq", enr.Record().Seq())) + if err != nil { + //Peer is already in peer-store but it doesn't have an enr, but discovered peer has ENR + pm.logger.Info("peer already found in peerstore, but doesn't have an ENR record, re-adding", + logging.HostID("peer", p.AddrInfo.ID), zap.Uint64("newENRSeq", p.ENR.Seq())) + } else { + //Peer is already in peer-store but stored ENR is older than discovered one. + pm.logger.Info("peer already found in peerstore, but re-adding it as ENR sequence is higher than locally stored", + logging.HostID("peer", p.AddrInfo.ID), zap.Uint64("newENRSeq", p.ENR.Seq()), zap.Uint64("storedENRSeq", enr.Record().Seq())) + } } supportedProtos := []protocol.ID{}