File 1171-mnesia-Handle-starting-and-stopping-in-connect_nodes.patch of Package erlang
From fa5033048eff892a468f3e0561bf249e4a5a59a4 Mon Sep 17 00:00:00 2001
From: Dan Gudmundsson <dgud@erlang.org>
Date: Tue, 16 Mar 2021 11:19:29 +0100
Subject: [PATCH] mnesia: Handle starting and stopping in connect_nodes
system_info(is_running) can also return starting and stopping,
error out if that is the case since mnesia is not yet in a state
to connect to new nodes
---
lib/mnesia/src/mnesia_controller.erl | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/lib/mnesia/src/mnesia_controller.erl b/lib/mnesia/src/mnesia_controller.erl
index 5a8cb302b2..5bbd91184f 100644
--- a/lib/mnesia/src/mnesia_controller.erl
+++ b/lib/mnesia/src/mnesia_controller.erl
@@ -460,8 +460,6 @@ connect_nodes(Ns) ->
connect_nodes(Ns, UserFun) ->
case mnesia:system_info(is_running) of
- no ->
- {error, {node_not_running, node()}};
yes ->
Pid = spawn_link(?MODULE,connect_nodes2,[self(),Ns, UserFun]),
receive
@@ -478,7 +476,9 @@ connect_nodes(Ns, UserFun) ->
end;
{'EXIT', Pid, Reason} ->
{error, Reason}
- end
+ end;
+ _ -> %% no, starting or stopping not ready to make a connection yet
+ {error, {node_not_running, node()}}
end.
connect_nodes2(Father, Ns, UserFun) ->
--
2.26.2