Commit 36adcc92 authored by Willem Thiart's avatar Willem Thiart
Browse files

Election timeout doesn't promote single node to leader

parent eefa3687
...@@ -144,9 +144,7 @@ int raft_periodic(raft_server_t* me_, int msec_since_last_period) ...@@ -144,9 +144,7 @@ int raft_periodic(raft_server_t* me_, int msec_since_last_period)
} }
else if (me->election_timeout <= me->timeout_elapsed) else if (me->election_timeout <= me->timeout_elapsed)
{ {
if (1 == me->num_nodes) if (1 < me->num_nodes)
raft_become_leader(me_);
else
raft_election_start(me_); raft_election_start(me_);
} }
......
...@@ -340,7 +340,7 @@ void TestRaft_server_periodic_elapses_election_timeout(CuTest * tc) ...@@ -340,7 +340,7 @@ void TestRaft_server_periodic_elapses_election_timeout(CuTest * tc)
CuAssertTrue(tc, 100 == raft_get_timeout_elapsed(r)); CuAssertTrue(tc, 100 == raft_get_timeout_elapsed(r));
} }
void TestRaft_server_election_timeout_promotes_us_to_leader_if_there_is_only_1_node(CuTest * tc) void TestRaft_server_election_timeout_does_no_promote_us_to_leader_if_there_is_only_1_node(CuTest * tc)
{ {
void *r = raft_new(); void *r = raft_new();
raft_add_node(r, NULL, 1, 1); raft_add_node(r, NULL, 1, 1);
...@@ -349,7 +349,7 @@ void TestRaft_server_election_timeout_promotes_us_to_leader_if_there_is_only_1_n ...@@ -349,7 +349,7 @@ void TestRaft_server_election_timeout_promotes_us_to_leader_if_there_is_only_1_n
/* clock over (ie. 1000 + 1), causing new election */ /* clock over (ie. 1000 + 1), causing new election */
raft_periodic(r, 1001); raft_periodic(r, 1001);
CuAssertTrue(tc, 1 == raft_is_leader(r)); CuAssertTrue(tc, 0 == raft_is_leader(r));
} }
void TestRaft_server_recv_entry_auto_commits_if_we_are_the_only_node(CuTest * tc) void TestRaft_server_recv_entry_auto_commits_if_we_are_the_only_node(CuTest * tc)
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment