summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichal Kuratczyk <mkuratczyk@vmware.com>2021-09-13 12:08:02 +0200
committerMichal Kuratczyk <mkuratczyk@vmware.com>2021-09-13 12:08:02 +0200
commit351a3e80a41194df07c4ec3692a431ae4f6eb9c5 (patch)
tree691d7e76923028b4dca447a5b7b7d1266e303bc0
parent2abcceec9216c729030418b55c482a6a01aff84b (diff)
downloadrabbitmq-server-git-faster-min-masters.tar.gz
Only consider configured nodes, if definedfaster-min-masters
Queue args/policy can explicitly define the nodes for a queue. Previously this was ignored and all cluster nodes were considred. Also, wait for metrics to be emitted before the assertion.
-rw-r--r--deps/rabbit/src/rabbit_queue_location_min_masters.erl2
-rw-r--r--deps/rabbit/test/queue_master_location_SUITE.erl5
2 files changed, 6 insertions, 1 deletions
diff --git a/deps/rabbit/src/rabbit_queue_location_min_masters.erl b/deps/rabbit/src/rabbit_queue_location_min_masters.erl
index fd2f9bdf65..847a74fb94 100644
--- a/deps/rabbit/src/rabbit_queue_location_min_masters.erl
+++ b/deps/rabbit/src/rabbit_queue_location_min_masters.erl
@@ -40,7 +40,7 @@ description() ->
].
queue_master_location(Q) when ?is_amqqueue(Q) ->
- Nodes0 = rabbit_nodes:all_running(),
+ Nodes0 = rabbit_queue_master_location_misc:all_nodes(Q),
Nodes = rabbit_maintenance:filter_out_drained_nodes_local_read(Nodes0),
case Nodes of
[] ->
diff --git a/deps/rabbit/test/queue_master_location_SUITE.erl b/deps/rabbit/test/queue_master_location_SUITE.erl
index a4801b2e13..266db064d2 100644
--- a/deps/rabbit/test/queue_master_location_SUITE.erl
+++ b/deps/rabbit/test/queue_master_location_SUITE.erl
@@ -189,6 +189,11 @@ declare_policy_nodes(Config) ->
ok = rabbit_ct_broker_helpers:set_policy(Config, 0, ?POLICY,
<<".*">>, <<"queues">>, Policy),
QueueName = rabbit_misc:r(<<"/">>, queue, Q = <<"qm.test">>),
+
+ rabbit_ct_helpers:await_condition(fun() ->
+ 0 < ets:info(queue_metrics, size)
+ end, 60000),
+
declare(Config, QueueName, false, false, _Args=[], none),
verify_min_master(Config, Q, Node1).