summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/rabbit_amqqueue.erl12
-rw-r--r--src/rabbit_quorum_queue.erl2
2 files changed, 12 insertions, 2 deletions
diff --git a/src/rabbit_amqqueue.erl b/src/rabbit_amqqueue.erl
index 21c027451d..9e613553ac 100644
--- a/src/rabbit_amqqueue.erl
+++ b/src/rabbit_amqqueue.erl
@@ -45,7 +45,7 @@
-export([update_mirroring/1, sync_mirrors/1, cancel_sync_mirrors/1]).
-export([emit_unresponsive/6, emit_unresponsive_local/5, is_unresponsive/2]).
-export([has_synchronised_mirrors_online/1]).
--export([is_replicated/1, is_dead_exclusive/1]). % Note: exported due to use in qlc expression.
+-export([is_replicated/1, is_exclusive/1, is_not_exclusive/1, is_dead_exclusive/1]).
-export([list_local_quorum_queues/0, list_local_quorum_queue_names/0,
list_local_leaders/0, list_local_followers/0, get_quorum_nodes/1,
list_local_mirrored_classic_without_synchronised_mirrors/0,
@@ -1094,6 +1094,8 @@ list_local_mirrored_classic_without_synchronised_mirrors() ->
[ Q || Q <- list(),
amqqueue:get_state(Q) =/= crashed,
amqqueue:is_classic(Q),
+ %% filter out exclusive queues as they won't actually be mirrored
+ is_not_exclusive(Q),
is_local_to_node(amqqueue:get_pid(Q), node()),
is_replicated(Q),
not has_synchronised_mirrors_online(Q)].
@@ -1952,6 +1954,14 @@ is_replicated(Q) when ?amqqueue_is_quorum(Q) ->
is_replicated(Q) ->
rabbit_mirror_queue_misc:is_mirrored(Q).
+is_exclusive(Q) when ?amqqueue_exclusive_owner_is(Q, none) ->
+ false;
+is_exclusive(Q) when ?amqqueue_exclusive_owner_is_pid(Q) ->
+ true.
+
+is_not_exclusive(Q) ->
+ not is_exclusive(Q).
+
is_dead_exclusive(Q) when ?amqqueue_exclusive_owner_is(Q, none) ->
false;
is_dead_exclusive(Q) when ?amqqueue_exclusive_owner_is_pid(Q) ->
diff --git a/src/rabbit_quorum_queue.erl b/src/rabbit_quorum_queue.erl
index e6f2b4ebe8..28a40ac615 100644
--- a/src/rabbit_quorum_queue.erl
+++ b/src/rabbit_quorum_queue.erl
@@ -251,7 +251,7 @@ list_with_minimum_quorum_for_cli() ->
[begin
#resource{name = Name} = amqqueue:get_name(Q),
#{
- <<"readable_name">> => rabbit_misc:rs(amqqueue:get_name(Q)),
+ <<"readable_name">> => rabbit_data_coercion:to_binary(rabbit_misc:rs(amqqueue:get_name(Q))),
<<"name">> => Name,
<<"virtual_host">> => amqqueue:get_vhost(Q),
<<"type">> => <<"quorum">>