Skip to content

Commit a31e3ed

Browse files
authored
Merge pull request #15568 from rabbitmq/handle-error-when-querying-cluster-members-in-peer-discovery
rabbit_peer_discovery: Handle error/timeout when querying cluster members
2 parents f10c7bf + c402032 commit a31e3ed

1 file changed

Lines changed: 15 additions & 4 deletions

File tree

deps/rabbit/src/rabbit_peer_discovery.erl

Lines changed: 15 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -603,11 +603,22 @@ do_query_node_props(Nodes, FromNode) when Nodes =/= [] ->
603603
%% node to the upstream node, regardless of their level.
604604
_ = logger:set_primary_config(level, debug),
605605

606-
%% TODO: Replace with `rabbit_nodes:list_members/0' when the oldest
607-
%% supported version has it.
608606
MembersPerNode = [try
609-
{ok,
610-
erpc_call(Node, rabbit_nodes, all, [], FromNode)}
607+
Members0 = erpc_call(
608+
Node,
609+
rabbit_nodes, list_members, [],
610+
FromNode),
611+
%% If `rabbit_nodes:list_members/0' returns an empty
612+
%% list, it means Khepri couldn't return it at this
613+
%% point. Let's assume the node is alone.
614+
Members1 = case Members0 of
615+
[] ->
616+
ThisNode = node(),
617+
[ThisNode];
618+
_ ->
619+
Members0
620+
end,
621+
{ok, Members1}
611622
catch
612623
Class:Reason ->
613624
{Class, Reason}

0 commit comments

Comments
 (0)