diff --git a/examples/simulate_node_failure.rs b/examples/simulate_node_failure.rs index 632ab9c..5cebb11 100644 --- a/examples/simulate_node_failure.rs +++ b/examples/simulate_node_failure.rs @@ -2,11 +2,11 @@ // License: MIT License use raft_rs::log::get_logger; +use raft_rs::server::{Server, ServerConfig}; +use rand::Rng; use slog::{info, warn}; use std::collections::HashMap; -use rand::Rng; use tokio::time::{sleep, Duration}; -use raft_rs::server::{Server, ServerConfig}; #[tokio::main] async fn main() { diff --git a/src/server.rs b/src/server.rs index 52149db..260f62a 100644 --- a/src/server.rs +++ b/src/server.rs @@ -290,7 +290,10 @@ impl Server { .clone() }) .collect(); - info!(self.log, "Starting election, id: {}, term: {}", self.id, self.state.current_term); + info!( + self.log, + "Starting election, id: {}, term: {}", self.id, self.state.current_term + ); let _ = self.network_manager.broadcast(&data, addresses).await; loop { @@ -743,13 +746,11 @@ impl Server { self.state.state = RaftState::Follower; self.state.current_term = term; } + } else if self.id != self.config.default_leader.unwrap() { + self.state.state = RaftState::Follower; + self.state.current_term = term; } else { - if self.id != self.config.default_leader.unwrap() { - self.state.state = RaftState::Follower; - self.state.current_term = term; - } else { - self.state.state = RaftState::Leader; - } + self.state.state = RaftState::Leader; } }