Skip to content

Commit d748215

Browse files
committed
Ensure node reconnections are done as before in rabbit_node_monitor
The behaviour of this module is to fragile to potentially allow a regression here so we explicitly ping_all/0 before filtering running nodes.
1 parent 85f08f0 commit d748215

File tree

1 file changed

+9
-4
lines changed

1 file changed

+9
-4
lines changed

deps/rabbit/src/rabbit_node_monitor.erl

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -168,7 +168,7 @@ notify_node_up() ->
168168

169169
notify_joined_cluster() ->
170170
NewMember = node(),
171-
Nodes = rabbit_nodes:list_running() -- [NewMember],
171+
Nodes = alive_rabbit_nodes() -- [NewMember],
172172
gen_server:abcast(Nodes, ?SERVER,
173173
{joined_cluster, node(), rabbit_db_cluster:node_type()}),
174174

@@ -177,7 +177,7 @@ notify_joined_cluster() ->
177177
-spec notify_left_cluster(node()) -> 'ok'.
178178

179179
notify_left_cluster(Node) ->
180-
Nodes = rabbit_nodes:list_running(),
180+
Nodes = alive_rabbit_nodes(),
181181
gen_server:abcast(Nodes, ?SERVER, {left_cluster, Node}),
182182
ok.
183183

@@ -1020,19 +1020,24 @@ alive_nodes() -> rabbit_nodes:list_reachable().
10201020

10211021
alive_nodes(Nodes) -> rabbit_nodes:filter_reachable(Nodes).
10221022

1023-
alive_rabbit_nodes() -> rabbit_nodes:list_running().
1023+
alive_rabbit_nodes() ->
1024+
alive_rabbit_nodes(rabbit_nodes:list_members()).
10241025

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

10271028
alive_rabbit_nodes(Nodes) ->
1029+
ok = ping(Nodes),
10281030
rabbit_nodes:filter_running(Nodes).
10291031

10301032
%% This one is allowed to connect!
10311033

10321034
-spec ping_all() -> 'ok'.
10331035

10341036
ping_all() ->
1035-
[net_adm:ping(N) || N <- rabbit_nodes:list_members()],
1037+
ping(rabbit_nodes:list_members()).
1038+
1039+
ping(Nodes) ->
1040+
_ = [net_adm:ping(N) || N <- Nodes],
10361041
ok.
10371042

10381043
possibly_partitioned_nodes() ->

0 commit comments

Comments
 (0)