Skip to content

Commit 9b4ce6c

Browse files
Merge pull request #2399 from rabbitmq/mk-check-if-node-is-mirror-sync-critical-should-ignore-exclusive-queues
Exclude exclusive queues from list_local_mirrored_classic_without_synchronised_mirrors
2 parents 6348d45 + 836921d commit 9b4ce6c

File tree

2 files changed

+12
-2
lines changed

2 files changed

+12
-2
lines changed

src/rabbit_amqqueue.erl

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@
4545
-export([update_mirroring/1, sync_mirrors/1, cancel_sync_mirrors/1]).
4646
-export([emit_unresponsive/6, emit_unresponsive_local/5, is_unresponsive/2]).
4747
-export([has_synchronised_mirrors_online/1]).
48-
-export([is_replicated/1, is_dead_exclusive/1]). % Note: exported due to use in qlc expression.
48+
-export([is_replicated/1, is_exclusive/1, is_not_exclusive/1, is_dead_exclusive/1]).
4949
-export([list_local_quorum_queues/0, list_local_quorum_queue_names/0,
5050
list_local_leaders/0, list_local_followers/0, get_quorum_nodes/1,
5151
list_local_mirrored_classic_without_synchronised_mirrors/0,
@@ -1094,6 +1094,8 @@ list_local_mirrored_classic_without_synchronised_mirrors() ->
10941094
[ Q || Q <- list(),
10951095
amqqueue:get_state(Q) =/= crashed,
10961096
amqqueue:is_classic(Q),
1097+
%% filter out exclusive queues as they won't actually be mirrored
1098+
is_not_exclusive(Q),
10971099
is_local_to_node(amqqueue:get_pid(Q), node()),
10981100
is_replicated(Q),
10991101
not has_synchronised_mirrors_online(Q)].
@@ -1952,6 +1954,14 @@ is_replicated(Q) when ?amqqueue_is_quorum(Q) ->
19521954
is_replicated(Q) ->
19531955
rabbit_mirror_queue_misc:is_mirrored(Q).
19541956

1957+
is_exclusive(Q) when ?amqqueue_exclusive_owner_is(Q, none) ->
1958+
false;
1959+
is_exclusive(Q) when ?amqqueue_exclusive_owner_is_pid(Q) ->
1960+
true.
1961+
1962+
is_not_exclusive(Q) ->
1963+
not is_exclusive(Q).
1964+
19551965
is_dead_exclusive(Q) when ?amqqueue_exclusive_owner_is(Q, none) ->
19561966
false;
19571967
is_dead_exclusive(Q) when ?amqqueue_exclusive_owner_is_pid(Q) ->

src/rabbit_quorum_queue.erl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -251,7 +251,7 @@ list_with_minimum_quorum_for_cli() ->
251251
[begin
252252
#resource{name = Name} = amqqueue:get_name(Q),
253253
#{
254-
<<"readable_name">> => rabbit_misc:rs(amqqueue:get_name(Q)),
254+
<<"readable_name">> => rabbit_data_coercion:to_binary(rabbit_misc:rs(amqqueue:get_name(Q))),
255255
<<"name">> => Name,
256256
<<"virtual_host">> => amqqueue:get_vhost(Q),
257257
<<"type">> => <<"quorum">>

0 commit comments

Comments
 (0)