Skip to content

Introduce rabbit_nodes:all/0 (backport #3462) #3463

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Sep 20, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion deps/rabbit/src/rabbit_amqqueue.erl
Original file line number Diff line number Diff line change
Expand Up @@ -1779,7 +1779,7 @@ forget_node_for_queue(DeadNode, [H|T], Q) when ?is_amqqueue(Q) ->
node_permits_offline_promotion(Node) ->
case node() of
Node -> not rabbit:is_running(); %% [1]
_ -> All = rabbit_mnesia:cluster_nodes(all),
_ -> All = rabbit_nodes:all(),
Running = rabbit_nodes:all_running(),
lists:member(Node, All) andalso
not lists:member(Node, Running) %% [2]
Expand Down
4 changes: 2 additions & 2 deletions deps/rabbit/src/rabbit_autoheal.erl
Original file line number Diff line number Diff line change
Expand Up @@ -144,7 +144,7 @@ enabled() ->
end.

leader() ->
[Leader | _] = lists:usort(rabbit_mnesia:cluster_nodes(all)),
[Leader | _] = lists:usort(rabbit_nodes:all()),
Leader.

%% This is the winner receiving its last notification that a node has
Expand Down Expand Up @@ -410,7 +410,7 @@ partition_value(Partition) ->
%% only know which nodes we have been partitioned from, not which
%% nodes are partitioned from each other.
check_other_nodes(LocalPartitions) ->
Nodes = rabbit_mnesia:cluster_nodes(all),
Nodes = rabbit_nodes:all(),
{Results, Bad} = rabbit_node_monitor:status(Nodes -- [node()]),
RemotePartitions = [{Node, proplists:get_value(partitions, Res)}
|| {Node, Res} <- Results],
Expand Down
2 changes: 1 addition & 1 deletion deps/rabbit/src/rabbit_core_metrics_gc.erl
Original file line number Diff line number Diff line change
Expand Up @@ -102,7 +102,7 @@ gc_exchanges() ->
gc_process_and_entity(channel_exchange_metrics, GbSet).

gc_nodes() ->
Nodes = rabbit_mnesia:cluster_nodes(all),
Nodes = rabbit_nodes:all(),
GbSet = gb_sets:from_list(Nodes),
gc_entity(node_node_metrics, GbSet).

Expand Down
4 changes: 2 additions & 2 deletions deps/rabbit/src/rabbit_mnesia_rename.erl
Original file line number Diff line number Diff line change
Expand Up @@ -100,7 +100,7 @@ prepare(Node, NodeMapList) ->

%% Check that we are in the cluster, all old nodes are in the
%% cluster, and no new nodes are.
Nodes = rabbit_mnesia:cluster_nodes(all),
Nodes = rabbit_nodes:all(),
case {FromNodes -- Nodes, ToNodes -- (ToNodes -- Nodes),
lists:member(Node, Nodes ++ ToNodes)} of
{[], [], true} -> ok;
Expand Down Expand Up @@ -232,7 +232,7 @@ update_term(_NodeMap, Term) ->
Term.

rename_in_running_mnesia(FromNode, ToNode) ->
All = rabbit_mnesia:cluster_nodes(all),
All = rabbit_nodes:all(),
Running = rabbit_nodes:all_running(),
case {lists:member(FromNode, Running), lists:member(ToNode, All)} of
{false, true} -> ok;
Expand Down
14 changes: 7 additions & 7 deletions deps/rabbit/src/rabbit_node_monitor.erl
Original file line number Diff line number Diff line change
Expand Up @@ -876,7 +876,7 @@ majority() ->
majority([]).

majority(NodesDown) ->
Nodes = rabbit_mnesia:cluster_nodes(all),
Nodes = rabbit_nodes:all(),
AliveNodes = alive_nodes(Nodes) -- NodesDown,
length(AliveNodes) / length(Nodes) > 0.5.

Expand All @@ -889,28 +889,28 @@ in_preferred_partition(PreferredNodes) ->
in_preferred_partition(PreferredNodes, []).

in_preferred_partition(PreferredNodes, NodesDown) ->
Nodes = rabbit_mnesia:cluster_nodes(all),
Nodes = rabbit_nodes:all(),
RealPreferredNodes = [N || N <- PreferredNodes, lists:member(N, Nodes)],
AliveNodes = alive_nodes(RealPreferredNodes) -- NodesDown,
RealPreferredNodes =:= [] orelse AliveNodes =/= [].

all_nodes_up() ->
Nodes = rabbit_mnesia:cluster_nodes(all),
Nodes = rabbit_nodes:all(),
length(alive_nodes(Nodes)) =:= length(Nodes).

-spec all_rabbit_nodes_up() -> boolean().

all_rabbit_nodes_up() ->
Nodes = rabbit_mnesia:cluster_nodes(all),
Nodes = rabbit_nodes:all(),
length(alive_rabbit_nodes(Nodes)) =:= length(Nodes).

alive_nodes() -> alive_nodes(rabbit_mnesia:cluster_nodes(all)).
alive_nodes() -> alive_nodes(rabbit_nodes:all()).

-spec alive_nodes([node()]) -> [node()].

alive_nodes(Nodes) -> [N || N <- Nodes, lists:member(N, [node()|nodes()])].

alive_rabbit_nodes() -> alive_rabbit_nodes(rabbit_mnesia:cluster_nodes(all)).
alive_rabbit_nodes() -> alive_rabbit_nodes(rabbit_nodes:all()).

-spec alive_rabbit_nodes([node()]) -> [node()].

Expand All @@ -922,7 +922,7 @@ alive_rabbit_nodes(Nodes) ->
-spec ping_all() -> 'ok'.

ping_all() ->
[net_adm:ping(N) || N <- rabbit_mnesia:cluster_nodes(all)],
[net_adm:ping(N) || N <- rabbit_nodes:all()],
ok.

possibly_partitioned_nodes() ->
Expand Down
7 changes: 5 additions & 2 deletions deps/rabbit/src/rabbit_nodes.erl
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
await_running_count/2, is_single_node_cluster/0,
boot/0]).
-export([persistent_cluster_id/0, seed_internal_cluster_id/0, seed_user_provided_cluster_name/0]).
-export([all_running_with_hashes/0]).
-export([all/0, all_running_with_hashes/0]).
-export([lock_id/1, lock_retries/0]).

-include_lib("kernel/include/inet.hrl").
Expand Down Expand Up @@ -137,14 +137,17 @@ set_cluster_name(Name, Username) ->
ensure_epmd() ->
rabbit_nodes_common:ensure_epmd().

-spec all() -> [node()].
all() -> rabbit_mnesia:cluster_nodes(all).

-spec all_running() -> [node()].
all_running() -> rabbit_mnesia:cluster_nodes(running).

-spec running_count() -> integer().
running_count() -> length(all_running()).

-spec total_count() -> integer().
total_count() -> length(rabbit_mnesia:cluster_nodes(all)).
total_count() -> length(rabbit_nodes:all()).

-spec is_single_node_cluster() -> boolean().
is_single_node_cluster() ->
Expand Down
4 changes: 2 additions & 2 deletions deps/rabbit/src/rabbit_quorum_queue.erl
Original file line number Diff line number Diff line change
Expand Up @@ -176,7 +176,7 @@ start_cluster(Q) ->
rabbit_data_coercion:to_atom(ra:new_uid(N))
end,
Id = {RaName, node()},
Nodes = select_quorum_nodes(QuorumSize, rabbit_mnesia:cluster_nodes(all)),
Nodes = select_quorum_nodes(QuorumSize, rabbit_nodes:all()),
NewQ0 = amqqueue:set_pid(Q, Id),
NewQ1 = amqqueue:set_type_state(NewQ0, #{nodes => Nodes}),

Expand Down Expand Up @@ -440,7 +440,7 @@ handle_tick(QName,
{messages_unacknowledged, MU},
{reductions, R}]),
ok = repair_leader_record(QName, Self),
ExpectedNodes = rabbit_mnesia:cluster_nodes(all),
ExpectedNodes = rabbit_nodes:all(),
case Nodes -- ExpectedNodes of
[] ->
ok;
Expand Down
2 changes: 1 addition & 1 deletion deps/rabbit/src/rabbit_stream_coordinator.erl
Original file line number Diff line number Diff line change
Expand Up @@ -475,7 +475,7 @@ maybe_resize_coordinator_cluster() ->
{_, Members, _} ->
MemberNodes = [Node || {_, Node} <- Members],
Running = rabbit_mnesia:cluster_nodes(running),
All = rabbit_mnesia:cluster_nodes(all),
All = rabbit_nodes:all(),
case Running -- MemberNodes of
[] ->
ok;
Expand Down
2 changes: 1 addition & 1 deletion deps/rabbit/src/rabbit_stream_queue.erl
Original file line number Diff line number Diff line change
Expand Up @@ -750,7 +750,7 @@ make_stream_conf(Node, Q) ->
InitialClusterSize = initial_cluster_size(
args_policy_lookup(<<"initial-cluster-size">>,
fun policy_precedence/2, Q)),
Replicas0 = rabbit_mnesia:cluster_nodes(all) -- [Node],
Replicas0 = rabbit_nodes:all() -- [Node],
%% TODO: try to avoid nodes that are not connected
Replicas = select_stream_nodes(InitialClusterSize - 1, Replicas0),
Formatter = {?MODULE, format_osiris_event, [QName]},
Expand Down
4 changes: 2 additions & 2 deletions deps/rabbit/src/rabbit_table.erl
Original file line number Diff line number Diff line change
Expand Up @@ -107,10 +107,10 @@ wait(TableNames, Timeout, Retries) ->
ok ->
ok;
{timeout, BadTabs} ->
AllNodes = rabbit_mnesia:cluster_nodes(all),
AllNodes = rabbit_nodes:all(),
{error, {timeout_waiting_for_tables, AllNodes, BadTabs}};
{error, Reason} ->
AllNodes = rabbit_mnesia:cluster_nodes(all),
AllNodes = rabbit_nodes:all(),
{error, {failed_waiting_for_tables, AllNodes, Reason}}
end,
case {Retries, Result} of
Expand Down
2 changes: 1 addition & 1 deletion deps/rabbit/src/rabbit_upgrade.erl
Original file line number Diff line number Diff line change
Expand Up @@ -111,7 +111,7 @@ remove_backup() ->
-spec maybe_upgrade_mnesia() -> 'ok'.

maybe_upgrade_mnesia() ->
AllNodes = rabbit_mnesia:cluster_nodes(all),
AllNodes = rabbit_nodes:all(),
ok = rabbit_mnesia_rename:maybe_finish(AllNodes),
%% Mnesia upgrade is the first upgrade scope,
%% so we should create a backup here if there are any upgrades
Expand Down
2 changes: 1 addition & 1 deletion deps/rabbitmq_management_agent/src/rabbit_mgmt_gc.erl
Original file line number Diff line number Diff line change
Expand Up @@ -105,7 +105,7 @@ gc_exchanges() ->
gc_process_and_entity(channel_exchange_stats_fine_stats, GbSet).

gc_nodes() ->
Nodes = rabbit_mnesia:cluster_nodes(all),
Nodes = rabbit_nodes:all(),
GbSet = gb_sets:from_list(Nodes),
gc_entity(node_stats, GbSet),
gc_entity(node_coarse_stats, GbSet),
Expand Down
2 changes: 1 addition & 1 deletion deps/rabbitmq_mqtt/src/mqtt_node.erl
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ server_id(Node) ->
{?ID_NAME, Node}.

all_node_ids() ->
[server_id(N) || N <- rabbit_mnesia:cluster_nodes(all),
[server_id(N) || N <- rabbit_nodes:all(),
can_participate_in_clientid_tracking(N)].

start() ->
Expand Down
2 changes: 1 addition & 1 deletion deps/rabbitmq_stream/src/rabbit_stream_sup.erl
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ init([]) ->
end}
end,

Nodes = rabbit_mnesia:cluster_nodes(all),
Nodes = rabbit_nodes:all(),
OsirisConf = #{nodes => Nodes},

ServerConfiguration =
Expand Down