Commit adec3025 authored by Willem Thiart's avatar Willem Thiart
Browse files

Refactored branch

parent e91d3e61
......@@ -180,10 +180,19 @@ int raft_recv_appendentries_response(raft_server_t* me_,
__log(me_, "received appendentries response from: %d", node);
if (0 == r->success)
{
raft_node_t* p = raft_get_node(me_, node);
/* If AppendEntries fails because of log inconsistency:
decrement nextIndex and retry (§5.3) */
assert(0 <= raft_node_get_next_idx(p));
// TODO does this have test coverage?
// TODO can jump back to where node is different instead of iterating
raft_node_set_next_idx(p, raft_node_get_next_idx(p) - 1);
raft_send_appendentries(me_, node);
return 0;
}
if (1 == r->success)
{
int i;
for (i = r->first_idx; i <= r->current_idx; i++)
......@@ -191,9 +200,7 @@ int raft_recv_appendentries_response(raft_server_t* me_,
while (1)
{
raft_entry_t* e;
e = raft_get_entry_from_idx(me_, me->last_applied_idx + 1);
raft_entry_t* e = raft_get_entry_from_idx(me_, me->last_applied_idx + 1);
/* majority has this */
if (e && me->num_nodes / 2 <= e->num_nodes)
......@@ -204,17 +211,6 @@ int raft_recv_appendentries_response(raft_server_t* me_,
else
break;
}
}
else
{
/* If AppendEntries fails because of log inconsistency:
decrement nextIndex and retry (§5.3) */
assert(0 <= raft_node_get_next_idx(p));
// TODO does this have test coverage?
// TODO can jump back to where node is different instead of iterating
raft_node_set_next_idx(p, raft_node_get_next_idx(p) - 1);
raft_send_appendentries(me_, node);
}
return 0;
}
......
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