Skip to content

Commit 4cd6b18

Browse files
committed
add assertion on log state
1 parent 5a84dd1 commit 4cd6b18

File tree

2 files changed

+26
-6
lines changed

2 files changed

+26
-6
lines changed

src/ra_log.erl

Lines changed: 24 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
%% @hidden
88
-module(ra_log).
99

10+
-include_lib("stdlib/include/assert.hrl").
1011
-compile([inline_list_funcs]).
1112

1213
-export([pre_init/1,
@@ -50,7 +51,8 @@
5051
delete_everything/1,
5152
release_resources/3,
5253

53-
tick/2
54+
tick/2,
55+
assert/1
5456
]).
5557

5658
-include("ra.hrl").
@@ -335,8 +337,7 @@ init(#{uid := UId,
335337
{SnapIdx, SnapTerm},
336338
State#?MODULE.last_written_index_term
337339
]),
338-
State.
339-
% element(1, delete_segments(SnapIdx, State)).
340+
assert(State).
340341

341342
-spec close(state()) -> ok.
342343
close(#?MODULE{cfg = #cfg{uid = _UId},
@@ -1086,6 +1087,26 @@ tick(Now, #?MODULE{cfg = #cfg{wal = Wal},
10861087
State
10871088
end.
10881089

1090+
assert(#?MODULE{cfg = #cfg{log_id = LogId},
1091+
range = Range,
1092+
snapshot_state = SnapState,
1093+
current_snapshot = CurrSnap,
1094+
live_indexes = LiveIndexes,
1095+
mem_table = _Mt
1096+
} = State) ->
1097+
%% TODO: remove this at some point?
1098+
?DEBUG("~ts: ra_log: asserting Range ~p Snapshot ~p LiveIndexes ~p",
1099+
[LogId, Range, CurrSnap, LiveIndexes]),
1100+
%% perform assertions to ensure log state is correct
1101+
?assert(CurrSnap =:= ra_snapshot:current(SnapState)),
1102+
?assert(Range == undefined orelse
1103+
CurrSnap == undefined orelse
1104+
element(1, Range) - 1 == element(1, CurrSnap)),
1105+
?assert(CurrSnap == undefined orelse
1106+
LiveIndexes == [] orelse
1107+
ra_seq:last(LiveIndexes) =< element(1, CurrSnap)),
1108+
State.
1109+
10891110
suggest_snapshot0(SnapKind, Idx, Cluster, MacModule, MacState, State0) ->
10901111
case should_snapshot(SnapKind, Idx, State0) of
10911112
true ->

test/coordination_SUITE.erl

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -388,9 +388,9 @@ shrink_cluster_with_snapshot(Config) ->
388388
%% resume activity ok
389389
PrivDir = ?config(data_dir, Config),
390390
ClusterName = ?config(cluster_name, Config),
391-
Peers = start_peers([s1,s2,s3], PrivDir),
391+
Peers = start_peers([s1, s2, s3], PrivDir),
392392
ServerIds = server_ids(ClusterName, Peers),
393-
[A, B, C] = ServerIds,
393+
[_A, _B, _C] = ServerIds,
394394

395395
Machine = {module, ?MODULE, #{}},
396396
{ok, _, []} = ra:start_cluster(?SYS, ClusterName, Machine, ServerIds),
@@ -410,7 +410,6 @@ shrink_cluster_with_snapshot(Config) ->
410410
exit(Pid, kill),
411411
{ok, _, _} = ra:remove_member(Leader1, Leader1),
412412

413-
414413
timer:sleep(500),
415414

416415
{ok, _, Leader2} = ra:members(ServerIds),

0 commit comments

Comments
 (0)