[object Object]

← back to Exo

race condition in on_listen_message for udp discovery fixes #308

b7996b9af43426540053c168e800cec4c17b5ef4 · 2024-10-07 21:46:42 +0400 · Alex Cheema

Files touched

Diff

commit b7996b9af43426540053c168e800cec4c17b5ef4
Author: Alex Cheema <alexcheema123@gmail.com>
Date:   Mon Oct 7 21:46:42 2024 +0400

    race condition in on_listen_message for udp discovery fixes #308
---
 exo/networking/udp/udp_discovery.py | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/exo/networking/udp/udp_discovery.py b/exo/networking/udp/udp_discovery.py
index 6650bfec..e6af9489 100644
--- a/exo/networking/udp/udp_discovery.py
+++ b/exo/networking/udp/udp_discovery.py
@@ -159,7 +159,7 @@ class UDPDiscovery(Discovery):
           if DEBUG >= 1: print(f"Peer {peer_id} at {peer_host}:{peer_port} is not healthy. Removing.")
           if peer_id in self.known_peers: del self.known_peers[peer_id]
           return
-        self.known_peers[peer_id] = (self.known_peers[peer_id][0], self.known_peers[peer_id][1], time.time(), peer_prio)
+        if peer_id in self.known_peers: self.known_peers[peer_id] = (self.known_peers[peer_id][0], self.known_peers[peer_id][1], time.time(), peer_prio)
 
   async def task_listen_for_peers(self):
     await asyncio.get_event_loop().create_datagram_endpoint(lambda: ListenProtocol(self.on_listen_message),

← e80ee607 fix the race condition in cleanup peers and run the peer che  ·  back to Exo  ·  one line print 8a69a7a2 →