Commit af95e333 authored by Yossi Gottlieb's avatar Yossi Gottlieb
Browse files

Fix raft_end_snapshot() not removing entries.

parent 5c2a56a7
...@@ -1239,7 +1239,7 @@ int raft_end_snapshot(raft_server_t *me_) ...@@ -1239,7 +1239,7 @@ int raft_end_snapshot(raft_server_t *me_)
return -1; return -1;
/* If needed, remove compacted logs */ /* If needed, remove compacted logs */
int i = raft_get_first_entry_idx(me_), end = raft_get_commit_idx(me_); int i = log_get_base(me->log) + 1, end = raft_get_commit_idx(me_);
for (; i <= end; i++) for (; i <= end; i++)
{ {
raft_entry_t* _ety; raft_entry_t* _ety;
......
...@@ -231,22 +231,18 @@ void TestRaft_leader_snapshot_end_succeeds_if_log_compacted(CuTest * tc) ...@@ -231,22 +231,18 @@ void TestRaft_leader_snapshot_end_succeeds_if_log_compacted(CuTest * tc)
raft_recv_entry(r, &ety, &cr); raft_recv_entry(r, &ety, &cr);
ety.id = 2; ety.id = 2;
raft_recv_entry(r, &ety, &cr); raft_recv_entry(r, &ety, &cr);
raft_set_commit_idx(r, 1); ety.id = 3;
CuAssertIntEquals(tc, 2, raft_get_log_count(r)); raft_recv_entry(r, &ety, &cr);
CuAssertIntEquals(tc, 1, raft_get_num_snapshottable_logs(r)); raft_set_commit_idx(r, 2);
CuAssertIntEquals(tc, 3, raft_get_log_count(r));
CuAssertIntEquals(tc, 2, raft_get_num_snapshottable_logs(r));
CuAssertIntEquals(tc, 0, raft_begin_snapshot(r)); CuAssertIntEquals(tc, 0, raft_begin_snapshot(r));
raft_entry_t* _ety;
int i = raft_get_first_entry_idx(r);
for (; i < raft_get_commit_idx(r); i++)
CuAssertIntEquals(tc, 0, raft_poll_entry(r, &_ety));
CuAssertIntEquals(tc, 0, raft_end_snapshot(r)); CuAssertIntEquals(tc, 0, raft_end_snapshot(r));
CuAssertIntEquals(tc, 0, raft_get_num_snapshottable_logs(r)); CuAssertIntEquals(tc, 0, raft_get_num_snapshottable_logs(r));
CuAssertIntEquals(tc, 1, raft_get_log_count(r)); CuAssertIntEquals(tc, 1, raft_get_log_count(r));
CuAssertIntEquals(tc, 1, raft_get_commit_idx(r)); CuAssertIntEquals(tc, 2, raft_get_commit_idx(r));
CuAssertIntEquals(tc, 1, raft_get_last_applied_idx(r)); CuAssertIntEquals(tc, 2, raft_get_last_applied_idx(r));
CuAssertIntEquals(tc, 0, raft_periodic(r, 1000)); CuAssertIntEquals(tc, 0, raft_periodic(r, 1000));
} }
...@@ -287,12 +283,6 @@ void TestRaft_leader_snapshot_end_succeeds_if_log_compacted2(CuTest * tc) ...@@ -287,12 +283,6 @@ void TestRaft_leader_snapshot_end_succeeds_if_log_compacted2(CuTest * tc)
CuAssertIntEquals(tc, 2, raft_get_num_snapshottable_logs(r)); CuAssertIntEquals(tc, 2, raft_get_num_snapshottable_logs(r));
CuAssertIntEquals(tc, 0, raft_begin_snapshot(r)); CuAssertIntEquals(tc, 0, raft_begin_snapshot(r));
raft_entry_t* _ety;
int i = raft_get_first_entry_idx(r);
for (; i <= raft_get_commit_idx(r); i++)
CuAssertIntEquals(tc, 0, raft_poll_entry(r, &_ety));
CuAssertIntEquals(tc, 0, raft_end_snapshot(r)); CuAssertIntEquals(tc, 0, raft_end_snapshot(r));
CuAssertIntEquals(tc, 0, raft_get_num_snapshottable_logs(r)); CuAssertIntEquals(tc, 0, raft_get_num_snapshottable_logs(r));
CuAssertIntEquals(tc, 1, raft_get_log_count(r)); CuAssertIntEquals(tc, 1, raft_get_log_count(r));
......
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