Skip to content

Commit 26b1b43

Browse files
committed
fix more than 10 nodes
1 parent 23f908b commit 26b1b43

File tree

1 file changed

+12
-4
lines changed

1 file changed

+12
-4
lines changed

nebula/core/network/communications.py

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,7 @@ def __init__(self, engine: "Engine"):
8080
self.incoming_connections = {}
8181
self.outgoing_connections = {}
8282
self.ready_connections = set()
83+
self._ready_connections_lock = Locker("ready_connections_lock", async_lock=True)
8384

8485
self._mm = MessagesManager(addr=self.addr, config=self.config)
8586
self.received_messages_hashes = collections.deque(
@@ -179,11 +180,13 @@ async def check_federation_ready(self):
179180
f"🔗 check_federation_ready | Ready connections: {self.ready_connections} | Connections: {self.connections.keys()}"
180181
)
181182
async with self.connections_lock:
182-
if set(self.connections.keys()) == self.ready_connections:
183-
return True
183+
async with self._ready_connections_lock:
184+
if set(self.connections.keys()) == self.ready_connections:
185+
return True
184186

185187
async def add_ready_connection(self, addr):
186-
self.ready_connections.add(addr)
188+
async with self._ready_connections_lock:
189+
self.ready_connections.add(addr)
187190

188191
async def start_communications(self, initial_neighbors):
189192
"""
@@ -198,11 +201,16 @@ async def start_communications(self, initial_neighbors):
198201
)
199202
await asyncio.sleep(self.config.participant["misc_args"]["grace_time_connection"])
200203
await self.start()
204+
neighbors = set(initial_neighbors)
205+
206+
if self.addr in neighbors:
207+
neighbors.discard(self.addr)
208+
201209
for i in initial_neighbors:
202210
addr = f"{i.split(':')[0]}:{i.split(':')[1]}"
203211
await self.connect(addr, direct=True)
204212
await asyncio.sleep(1)
205-
while not await self.verify_connections(initial_neighbors):
213+
while not await self.verify_connections(neighbors):
206214
await asyncio.sleep(1)
207215
current_connections = await self.get_addrs_current_connections()
208216
logging.info(f"Connections verified: {current_connections}")

0 commit comments

Comments
 (0)