Skip to content

Commit f0d168f

Browse files
committed
Filter out nodes being drained test
1 parent c8e1527 commit f0d168f

File tree

1 file changed

+38
-1
lines changed

1 file changed

+38
-1
lines changed

deps/rabbit/test/member_evaluation_SUITE.erl

Lines changed: 38 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ groups() ->
2323
[
2424
{unclustered, [],
2525
[
26-
{quorum_queue_3, [], [auto_grow, auto_shrink]}
26+
{quorum_queue_3, [], [auto_grow, auto_grow_drained_node, auto_shrink]}
2727
]}
2828
].
2929

@@ -130,6 +130,43 @@ auto_grow(Config) ->
130130
3 =:= length(M)
131131
end).
132132

133+
auto_grow_drained_node(Config) ->
134+
[Server0, Server1, Server2] =
135+
rabbit_ct_broker_helpers:get_node_configs(Config, nodename),
136+
Ch = rabbit_ct_client_helpers:open_channel(Config, Server0),
137+
138+
QQ = ?config(queue_name, Config),
139+
?assertEqual({'queue.declare_ok', QQ, 0, 0},
140+
declare(Ch, QQ, [{<<"x-queue-type">>, longstr, <<"quorum">>}])),
141+
142+
%% There is only one node in the cluster at the moment
143+
{ok, Members, _} = ra:members({quorum_queue_utils:ra_name(QQ), Server0}),
144+
?assertEqual(1, length(Members)),
145+
146+
add_server_to_cluster(Server1, Server0),
147+
%% mark server1 as drained, which should mean the node is not a candiate
148+
%% for qq membership
149+
rabbit_ct_broker_helpers:mark_as_being_drained(Config, Server1),
150+
rabbit_ct_helpers:await_condition(
151+
fun () -> rabbit_ct_broker_helpers:is_being_drained_local_read(Config, Server1) end,
152+
10000),
153+
add_server_to_cluster(Server2, Server0),
154+
timer:sleep(5000),
155+
%% We have 3 nodes, but one is drained, so it will not be concidered.
156+
{ok, Members1, _} = ra:members({quorum_queue_utils:ra_name(QQ), Server0}),
157+
?assertEqual(1, length(Members1)),
158+
159+
rabbit_ct_broker_helpers:unmark_as_being_drained(Config, Server1),
160+
rabbit_ct_helpers:await_condition(
161+
fun () -> not rabbit_ct_broker_helpers:is_being_drained_local_read(Config, Server1) end,
162+
10000),
163+
%% We have 3 nodes, none is being drained, so we should grow membership to 3
164+
wait_until(fun() ->
165+
{ok, M, _} = ra:members({quorum_queue_utils:ra_name(QQ), Server0}),
166+
3 =:= length(M)
167+
end).
168+
169+
133170
auto_shrink(Config) ->
134171
[Server0, Server1, Server2] =
135172
rabbit_ct_broker_helpers:get_node_configs(Config, nodename),

0 commit comments

Comments
 (0)