Skip to content

Commit 686d90c

Browse files
committed
Fix test for ha-mode exactly. Requires sync-ing the queues to ensure slave pids are started
1 parent c9578d0 commit 686d90c

File tree

2 files changed

+22
-15
lines changed

2 files changed

+22
-15
lines changed

.gitignore

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
.*.sw?
44
*.beam
55
*.coverdata
6-
MNesiaCore.*
6+
MnesiaCore.*
77
/.erlang.mk/
88
/cover/
99
/debug/

test/queue_master_location_SUITE.erl

Lines changed: 21 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -163,29 +163,36 @@ declare_policy_all(Config) ->
163163
declare_policy_exactly(Config) ->
164164
setup_test_environment(Config),
165165
unset_location_config(Config),
166-
% Note:
167-
% Node0 has 15 queues, Node1 has 8 and Node2 has 1
168166
Policy = [{<<"queue-master-locator">>, <<"min-masters">>},
169167
{<<"ha-mode">>, <<"exactly">>},
170168
{<<"ha-params">>, 2}],
171169
ok = rabbit_ct_broker_helpers:set_policy(Config, 0, ?POLICY,
172170
<<".*">>, <<"queues">>, Policy),
173-
QueueRec = rabbit_misc:r(<<"/">>, queue, Q = <<"qm.test">>),
174-
declare(Config, QueueRec, false, false, _Args=[], none),
171+
QueueRes = rabbit_misc:r(<<"/">>, queue, Q = <<"qm.test">>),
172+
declare(Config, QueueRes, false, false, _Args=[], none),
175173

176174
Node0 = rabbit_ct_broker_helpers:get_node_config(Config, 0, nodename),
177175
rabbit_ct_broker_helpers:control_action(sync_queue, Node0,
178176
[binary_to_list(Q)], [{"-p", "/"}]),
179-
wait_for_sync(Config, Node0, QueueRec, 1),
177+
wait_for_sync(Config, Node0, QueueRes, 1),
180178

181179
{ok, Queue} = rabbit_ct_broker_helpers:rpc(Config, Node0,
182-
rabbit_amqqueue, lookup, [QueueRec]),
183-
ct:pal("Queue after sync ~p~n", [Queue]),
184-
{MNode, SNodes, SSNodes} = rabbit_ct_broker_helpers:rpc(Config, Node0,
185-
rabbit_mirror_queue_misc,
186-
actual_queue_nodes, [Queue]),
187-
ct:pal("MNode ~p SNodes ~p SSNodes ~p~n", [MNode, SNodes, SSNodes]),
188-
verify_min_master(Config, Q, Node0).
180+
rabbit_amqqueue, lookup, [QueueRes]),
181+
{MNode0, [SNode], [SSNode]} = rabbit_ct_broker_helpers:rpc(Config, Node0,
182+
rabbit_mirror_queue_misc,
183+
actual_queue_nodes, [Queue]),
184+
?assertEqual(SNode, SSNode),
185+
{ok, MNode1} = rabbit_ct_broker_helpers:rpc(Config, 0,
186+
rabbit_queue_master_location_misc,
187+
lookup_master, [Q, ?DEFAULT_VHOST_PATH]),
188+
?assertEqual(MNode0, MNode1),
189+
MIdx = rabbit_ct_broker_helpers:nodename_to_index(Config, MNode1),
190+
SIdx = rabbit_ct_broker_helpers:nodename_to_index(Config, SNode),
191+
% Note:
192+
% We know that the nodes are indexed in the configuration in such a way
193+
% that higher indexes have fewer queues assigned to them
194+
% Node0 has 15 queues, Node1 has 8 and Node2 has 1
195+
?assert(MIdx > SIdx).
189196

190197
declare_config(Config) ->
191198
setup_test_environment(Config),
@@ -353,8 +360,8 @@ wait_for_sync(Config, Nodename, Q, ExpectedSSPidLen, N) ->
353360
end.
354361

355362
synced(Config, Nodename, Q, ExpectedSSPidLen) ->
363+
Args = [<<"/">>, [name, synchronised_slave_pids]],
356364
Info = rabbit_ct_broker_helpers:rpc(Config, Nodename,
357-
rabbit_amqqueue, info_all, [<<"/">>, [name, synchronised_slave_pids]]),
358-
ct:pal("synced Info: ~p~n", [Info]),
365+
rabbit_amqqueue, info_all, Args),
359366
[SSPids] = [Pids || [{name, Q1}, {synchronised_slave_pids, Pids}] <- Info, Q =:= Q1],
360367
length(SSPids) =:= ExpectedSSPidLen.

0 commit comments

Comments
 (0)