Commit 6430c51f authored by Yossi Gottlieb's avatar Yossi Gottlieb
Browse files

Fix leaks.

parent 2d680b42
...@@ -572,7 +572,7 @@ static int __should_grant_vote(raft_server_private_t* me, msg_requestvote_t* vr) ...@@ -572,7 +572,7 @@ static int __should_grant_vote(raft_server_private_t* me, msg_requestvote_t* vr)
return 1; return 1;
raft_entry_t* ety = raft_get_entry_from_idx((void*)me, current_idx); raft_entry_t* ety = raft_get_entry_from_idx((void*)me, current_idx);
int ety_term; raft_term_t ety_term;
// TODO: add test // TODO: add test
if (ety) { if (ety) {
...@@ -1147,9 +1147,11 @@ int raft_msg_entry_response_committed(raft_server_t* me_, ...@@ -1147,9 +1147,11 @@ int raft_msg_entry_response_committed(raft_server_t* me_,
raft_entry_t* ety = raft_get_entry_from_idx(me_, r->idx); raft_entry_t* ety = raft_get_entry_from_idx(me_, r->idx);
if (!ety) if (!ety)
return 0; return 0;
raft_term_t ety_term = ety->term;
raft_entry_release(ety);
/* entry from another leader has invalidated this entry message */ /* entry from another leader has invalidated this entry message */
if (r->term != ety->term) if (r->term != ety_term)
return -1; return -1;
return r->idx <= raft_get_commit_idx(me_); return r->idx <= raft_get_commit_idx(me_);
} }
...@@ -1345,6 +1347,8 @@ int raft_begin_snapshot(raft_server_t *me_, int flags) ...@@ -1345,6 +1347,8 @@ int raft_begin_snapshot(raft_server_t *me_, int flags)
raft_entry_t* ety = raft_get_entry_from_idx(me_, snapshot_target); raft_entry_t* ety = raft_get_entry_from_idx(me_, snapshot_target);
if (!ety) if (!ety)
return -1; return -1;
raft_term_t ety_term = ety->term;
raft_entry_release(ety);
/* we need to get all the way to the commit idx */ /* we need to get all the way to the commit idx */
int e = raft_apply_all(me_); int e = raft_apply_all(me_);
...@@ -1353,7 +1357,7 @@ int raft_begin_snapshot(raft_server_t *me_, int flags) ...@@ -1353,7 +1357,7 @@ int raft_begin_snapshot(raft_server_t *me_, int flags)
assert(raft_get_commit_idx(me_) == raft_get_last_applied_idx(me_)); assert(raft_get_commit_idx(me_) == raft_get_last_applied_idx(me_));
raft_set_snapshot_metadata(me_, ety->term, snapshot_target); raft_set_snapshot_metadata(me_, ety_term, snapshot_target);
me->snapshot_in_progress = 1; me->snapshot_in_progress = 1;
me->snapshot_flags = flags; me->snapshot_flags = flags;
......
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