Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
ruanhaishen
RedisLabs Raft
Commits
af95e333
Commit
af95e333
authored
Apr 11, 2018
by
Yossi Gottlieb
Browse files
Fix raft_end_snapshot() not removing entries.
parent
5c2a56a7
Changes
2
Hide whitespace changes
Inline
Side-by-side
src/raft_server.c
View file @
af95e333
...
@@ -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
;
...
...
tests/test_snapshotting.c
View file @
af95e333
...
@@ -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
));
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment