Browse Source

race condition in on_listen_message for udp discovery fixes #308

Alex Cheema 10 months ago
parent
commit
b7996b9af4
1 changed files with 1 additions and 1 deletions
  1. 1 1
      exo/networking/udp/udp_discovery.py

+ 1 - 1
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),