diff --git a/server.py b/server.py index 27f1e799ddb2ae98e3bd72910c02bf4351197e2b..6e1c1ebc38e300cccdbb63ae3c2d48f51517af80 100644 --- a/server.py +++ b/server.py @@ -33,6 +33,7 @@ class Server(): self.informServer = False self.serverList = [] # list if servers and their addresses self.leader_uuid = '' # fix the leader IP + self.leader_ip = '' self.is_leader = False # New variable to track if the server is the leader self.uuid = str(uuid.uuid4()) self.participant = False @@ -315,6 +316,7 @@ class Server(): if data: self.leader_heartbeat_last_received = time.time() sender_ip = address[0] + self.leader_ip = sender_ip if sender_ip != MY_IP: print(f"Received heartbeat from {sender_ip}: {data.decode()}") @@ -327,8 +329,8 @@ class Server(): if self.missed_heartbeats >= self.missed_heartbeats_limit: print("Missed heartbeats limit reached. Initiating leader election.") - thread_election.join() - thread_election.start() + self.serverList.remove(self.leader_ip) + self.basic_lcr() # Reset missed heartbeats count self.missed_heartbeats = 0