Skip to content

Commit 692c3dd

Browse files
author
Andy Till
authored
Merge pull request #1247 from basho/at-cluster-check-on-repl-fullsync
Check stats on all nodes for REPL fullsync success
2 parents df80001 + 1f00578 commit 692c3dd

File tree

2 files changed

+22
-15
lines changed

2 files changed

+22
-15
lines changed

tests/repl_util.erl

Lines changed: 20 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -235,7 +235,9 @@ start_and_wait_until_fullsync_complete(Node, Cluster) ->
235235
start_and_wait_until_fullsync_complete(Node, Cluster, NotifyPid) ->
236236
start_and_wait_until_fullsync_complete(Node, Cluster, NotifyPid, 20).
237237

238-
start_and_wait_until_fullsync_complete(Node, Cluster, NotifyPid, Retries) ->
238+
start_and_wait_until_fullsync_complete(Node, Cluster, NotifyPid, Retries) when is_atom(Node) ->
239+
start_and_wait_until_fullsync_complete([Node], Cluster, NotifyPid, Retries);
240+
start_and_wait_until_fullsync_complete([Node|_] = Nodes, Cluster, NotifyPid, Retries) ->
239241
Status0 = rpc:call(Node, riak_repl_console, status, [quiet]),
240242
Count0 = proplists:get_value(server_fullsyncs, Status0),
241243
Count = fullsync_count(Count0, Status0, Cluster),
@@ -252,7 +254,7 @@ start_and_wait_until_fullsync_complete(Node, Cluster, NotifyPid, Retries) ->
252254
%% Send message to process and notify fullsync has began.
253255
fullsync_notify(NotifyPid),
254256

255-
case rt:wait_until(make_fullsync_wait_fun(Node, Count), 100, 1000) of
257+
case rt:wait_until(make_fullsync_wait_fun(Nodes, Count), 100, 1000) of
256258
ok ->
257259
ok;
258260
_ when Retries > 0 ->
@@ -281,19 +283,24 @@ fullsync_notify(NotifyPid) when is_pid(NotifyPid) ->
281283
fullsync_notify(_) ->
282284
ok.
283285

284-
make_fullsync_wait_fun(Node, Count) ->
286+
make_fullsync_wait_fun(Cluster, Count) when is_list(Cluster) ->
285287
fun() ->
286-
Status = rpc:call(Node, riak_repl_console, status, [quiet]),
287-
case Status of
288-
{badrpc, _} ->
289-
false;
288+
make_fullsync_wait_fun2(Cluster, Count)
289+
end.
290+
291+
make_fullsync_wait_fun2([], _) ->
292+
false;
293+
make_fullsync_wait_fun2([Node|Tail], Count) when is_atom(Node) ->
294+
Status = rpc:call(Node, riak_repl_console, status, [quiet]),
295+
case Status of
296+
{badrpc, _} ->
297+
false;
298+
_ ->
299+
case proplists:get_value(server_fullsyncs, Status) of
300+
C when C >= Count ->
301+
true;
290302
_ ->
291-
case proplists:get_value(server_fullsyncs, Status) of
292-
C when C >= Count ->
293-
true;
294-
_ ->
295-
false
296-
end
303+
make_fullsync_wait_fun2(Tail, Count)
297304
end
298305
end.
299306

tests/ts_cluster_replication.erl

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -207,7 +207,7 @@ full_sync_replication_test([AFirst|_]=ANodes, [BFirst|_]=BNodes, LeaderA, PortB,
207207
lager:info("Starting and waiting for fullsync"),
208208
connect_clusters(ANodes, BNodes, LeaderA, PortB),
209209
start_mdc(ANodes, LeaderA, "B", true),
210-
repl_util:start_and_wait_until_fullsync_complete(hd(ANodes), "B"),
210+
repl_util:start_and_wait_until_fullsync_complete(ANodes, "B"),
211211

212212
lager:info("Verifying first 100 keys present on 2nd cluster (non-w1c)"),
213213
?assertEqual(100, kv_num_objects_present(BNode, 1, 100, KVBucket)),
@@ -221,7 +221,7 @@ full_sync_replication_test([AFirst|_]=ANodes, [BFirst|_]=BNodes, LeaderA, PortB,
221221
timer:sleep(500),
222222
lager:info("Verifying record is no longer on Cluster A"),
223223
?assertEqual(0, ts_num_records_present(AFirst, 23, 23, Table)),
224-
repl_util:start_and_wait_until_fullsync_complete(hd(ANodes), "B"),
224+
repl_util:start_and_wait_until_fullsync_complete(ANodes, "B"),
225225
lager:info("Verifying record is no longer on Cluster B"),
226226
?assertEqual(0, ts_num_records_present(BFirst, 23, 23, Table)),
227227

0 commit comments

Comments
 (0)