Skip to content

Commit c9578d0

Browse files
michaelklishinlukebakken
authored andcommitted
Squash a warning => compiles from scratch
1 parent 774689c commit c9578d0

File tree

3 files changed

+57
-26
lines changed

3 files changed

+57
-26
lines changed

src/rabbit_mirror_queue_misc.erl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919

2020
-export([remove_from_queue/3, on_node_up/0, add_mirrors/3,
2121
report_deaths/4, store_updated_slaves/1,
22-
initial_queue_node/2, suggested_queue_nodes/1,
22+
initial_queue_node/2, suggested_queue_nodes/1, actual_queue_nodes/1,
2323
is_mirrored/1, update_mirrors/2, update_mirrors/1, validate_policy/1,
2424
maybe_auto_sync/1, maybe_drop_master_after_sync/1,
2525
sync_batch_size/1, log_info/3, log_warning/3]).

src/rabbit_queue_master_location_misc.erl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,7 @@ get_location_mod_by_config(#amqqueue{}) ->
9595
all_nodes(Queue = #amqqueue{}) ->
9696
handle_suggested_queue_nodes(rabbit_mirror_queue_misc:suggested_queue_nodes(Queue)).
9797

98-
handle_suggested_queue_nodes({MNode, []}) ->
98+
handle_suggested_queue_nodes({_MNode, []}) ->
9999
rabbit_nodes:all_running();
100100
handle_suggested_queue_nodes({MNode, SNodes}) ->
101101
[MNode | SNodes].

test/queue_master_location_SUITE.erl

Lines changed: 55 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -165,18 +165,27 @@ declare_policy_exactly(Config) ->
165165
unset_location_config(Config),
166166
% Note:
167167
% Node0 has 15 queues, Node1 has 8 and Node2 has 1
168-
Node1 = rabbit_ct_broker_helpers:get_node_config(Config, 1, nodename),
169168
Policy = [{<<"queue-master-locator">>, <<"min-masters">>},
170169
{<<"ha-mode">>, <<"exactly">>},
171170
{<<"ha-params">>, 2}],
172171
ok = rabbit_ct_broker_helpers:set_policy(Config, 0, ?POLICY,
173172
<<".*">>, <<"queues">>, Policy),
174-
QueueName = rabbit_misc:r(<<"/">>, queue, Q = <<"qm.test">>),
175-
declare(Config, QueueName, false, false, _Args=[], none),
176-
% Note: even though Node2 has the fewest masters, the "exactly" policy
177-
% chooses Node0 and Node1 as eligible, and then "min-masters"
178-
% chooses Node1
179-
verify_min_master(Config, Q, Node1).
173+
QueueRec = rabbit_misc:r(<<"/">>, queue, Q = <<"qm.test">>),
174+
declare(Config, QueueRec, false, false, _Args=[], none),
175+
176+
Node0 = rabbit_ct_broker_helpers:get_node_config(Config, 0, nodename),
177+
rabbit_ct_broker_helpers:control_action(sync_queue, Node0,
178+
[binary_to_list(Q)], [{"-p", "/"}]),
179+
wait_for_sync(Config, Node0, QueueRec, 1),
180+
181+
{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).
180189

181190
declare_config(Config) ->
182191
setup_test_environment(Config),
@@ -286,44 +295,66 @@ min_master_node(Config) ->
286295

287296
set_location_config(Config, Strategy) ->
288297
Nodes = rabbit_ct_broker_helpers:get_node_configs(Config, nodename),
289-
[ok = rpc:call(Node, application, set_env,
290-
[rabbit, queue_master_locator, Strategy]) || Node <- Nodes],
298+
[ok = rabbit_ct_broker_helpers:rpc(Config, Node,
299+
application, set_env,
300+
[rabbit, queue_master_locator, Strategy]) || Node <- Nodes],
291301
ok.
292302

293303
unset_location_config(Config) ->
294304
Nodes = rabbit_ct_broker_helpers:get_node_configs(Config, nodename),
295-
[ok = rpc:call(Node, application, unset_env,
296-
[rabbit, queue_master_locator]) || Node <- Nodes],
305+
[ok = rabbit_ct_broker_helpers:rpc(Config, Node,
306+
application, unset_env,
307+
[rabbit, queue_master_locator]) || Node <- Nodes],
297308
ok.
298309

299-
declare(Config, QueueName, Durable, AutoDelete, Args, Owner) ->
300-
Node = rabbit_ct_broker_helpers:get_node_config(Config, 0, nodename),
301-
{new, Queue} = rpc:call(Node, rabbit_amqqueue, declare,
302-
[QueueName, Durable, AutoDelete, Args, Owner]),
310+
declare(Config, QueueName, Durable, AutoDelete, Args0, Owner) ->
311+
Args1 = [QueueName, Durable, AutoDelete, Args0, Owner],
312+
{new, Queue} = rabbit_ct_broker_helpers:rpc(Config, 0, rabbit_amqqueue, declare, Args1),
303313
Queue.
304314

305315
verify_min_master(Config, Q, MinMasterNode) ->
306-
Node = rabbit_ct_broker_helpers:get_node_config(Config, 0, nodename),
307-
Rpc = rpc:call(Node, rabbit_queue_master_location_misc,
308-
lookup_master, [Q, ?DEFAULT_VHOST_PATH]),
316+
Rpc = rabbit_ct_broker_helpers:rpc(Config, 0,
317+
rabbit_queue_master_location_misc,
318+
lookup_master, [Q, ?DEFAULT_VHOST_PATH]),
309319
?assertEqual({ok, MinMasterNode}, Rpc).
310320

311321
verify_min_master(Config, Q) ->
312322
MinMaster = min_master_node(Config),
313323
verify_min_master(Config, Q, MinMaster).
314324

315325
verify_random(Config, Q) ->
316-
[Node | _] = Nodes = rabbit_ct_broker_helpers:get_node_configs(Config,
317-
nodename),
318-
{ok, Master} = rpc:call(Node, rabbit_queue_master_location_misc,
319-
lookup_master, [Q, ?DEFAULT_VHOST_PATH]),
326+
[Node | _] = Nodes = rabbit_ct_broker_helpers:get_node_configs(Config, nodename),
327+
{ok, Master} = rabbit_ct_broker_helpers:rpc(Config, Node,
328+
rabbit_queue_master_location_misc,
329+
lookup_master, [Q, ?DEFAULT_VHOST_PATH]),
320330
?assert(lists:member(Master, Nodes)).
321331

322332
verify_client_local(Config, Q) ->
323333
Node = rabbit_ct_broker_helpers:get_node_config(Config, 0, nodename),
324-
?assertEqual({ok, Node}, rpc:call(Node, rabbit_queue_master_location_misc,
325-
lookup_master, [Q, ?DEFAULT_VHOST_PATH])).
334+
Rpc = rabbit_ct_broker_helpers:rpc(Config, Node,
335+
rabbit_queue_master_location_misc,
336+
lookup_master, [Q, ?DEFAULT_VHOST_PATH]),
337+
?assertEqual({ok, Node}, Rpc).
326338

327339
set_location_policy(Config, Name, Strategy) ->
328340
ok = rabbit_ct_broker_helpers:set_policy(Config, 0,
329341
Name, <<".*">>, <<"queues">>, [{<<"queue-master-locator">>, Strategy}]).
342+
343+
wait_for_sync(Config, Nodename, Q, ExpectedSSPidLen) ->
344+
wait_for_sync(Config, Nodename, Q, ExpectedSSPidLen, 600).
345+
346+
wait_for_sync(_, _, _, _, 0) ->
347+
throw(sync_timeout);
348+
wait_for_sync(Config, Nodename, Q, ExpectedSSPidLen, N) ->
349+
case synced(Config, Nodename, Q, ExpectedSSPidLen) of
350+
true -> ok;
351+
false -> timer:sleep(100),
352+
wait_for_sync(Config, Nodename, Q, ExpectedSSPidLen, N-1)
353+
end.
354+
355+
synced(Config, Nodename, Q, ExpectedSSPidLen) ->
356+
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]),
359+
[SSPids] = [Pids || [{name, Q1}, {synchronised_slave_pids, Pids}] <- Info, Q =:= Q1],
360+
length(SSPids) =:= ExpectedSSPidLen.

0 commit comments

Comments
 (0)