mirror of
https://github.com/logos-messaging/go-libp2p-pubsub.git
synced 2026-01-02 12:53:09 +00:00
fix handling of dead peers (#492)
* fix handling of dead peers * remove unnecessary continue
This commit is contained in:
parent
96efa27a1a
commit
60cf380032
23
pubsub.go
23
pubsub.go
@ -696,6 +696,16 @@ func (p *PubSub) handleDeadPeers() {
|
||||
}
|
||||
|
||||
close(ch)
|
||||
delete(p.peers, pid)
|
||||
|
||||
for t, tmap := range p.topics {
|
||||
if _, ok := tmap[pid]; ok {
|
||||
delete(tmap, pid)
|
||||
p.notifyLeave(t, pid)
|
||||
}
|
||||
}
|
||||
|
||||
p.rt.RemovePeer(pid)
|
||||
|
||||
if p.host.Network().Connectedness(pid) == network.Connected {
|
||||
backoffDelay, err := p.deadPeerBackoff.updateAndGet(pid)
|
||||
@ -709,20 +719,9 @@ func (p *PubSub) handleDeadPeers() {
|
||||
log.Debugf("peer declared dead but still connected; respawning writer: %s", pid)
|
||||
messages := make(chan *RPC, p.peerOutboundQueueSize)
|
||||
messages <- p.getHelloPacket()
|
||||
go p.handleNewPeerWithBackoff(p.ctx, pid, backoffDelay, messages)
|
||||
p.peers[pid] = messages
|
||||
continue
|
||||
go p.handleNewPeerWithBackoff(p.ctx, pid, backoffDelay, messages)
|
||||
}
|
||||
|
||||
delete(p.peers, pid)
|
||||
for t, tmap := range p.topics {
|
||||
if _, ok := tmap[pid]; ok {
|
||||
delete(tmap, pid)
|
||||
p.notifyLeave(t, pid)
|
||||
}
|
||||
}
|
||||
|
||||
p.rt.RemovePeer(pid)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user