Commit 8b444aa1 authored by Li Wei's avatar Li Wei Committed by Willem Thiart
Browse files

DAOS-333 server: Check AE reply term first



raft_recv_appendentries_response() should check r->term before checking
r->current_idx.
Signed-off-by: default avatarLi Wei <wei.g.li@intel.com>
parent 6bf3f5f1
...@@ -229,10 +229,6 @@ int raft_recv_appendentries_response(raft_server_t* me_, ...@@ -229,10 +229,6 @@ int raft_recv_appendentries_response(raft_server_t* me_,
if (!node) if (!node)
return -1; return -1;
/* Stale response -- ignore */
if (r->current_idx != 0 && r->current_idx <= raft_node_get_match_idx(node))
return 0;
if (!raft_is_leader(me_)) if (!raft_is_leader(me_))
return RAFT_ERR_NOT_LEADER; return RAFT_ERR_NOT_LEADER;
...@@ -247,6 +243,10 @@ int raft_recv_appendentries_response(raft_server_t* me_, ...@@ -247,6 +243,10 @@ int raft_recv_appendentries_response(raft_server_t* me_,
else if (me->current_term != r->term) else if (me->current_term != r->term)
return 0; return 0;
/* Stale response -- ignore */
if (r->current_idx != 0 && r->current_idx <= raft_node_get_match_idx(node))
return 0;
if (0 == r->success) if (0 == r->success)
{ {
/* If AppendEntries fails because of log inconsistency: /* If AppendEntries fails because of log inconsistency:
......
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