Skip to content

Commit 3d155fd

Browse files
committed
peer disc retry
1 parent 7a7174d commit 3d155fd

File tree

1 file changed

+11
-3
lines changed

1 file changed

+11
-3
lines changed

deps/rabbit/src/rabbit_peer_discovery.erl

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -698,19 +698,27 @@ is_node_db_ready(Node, FromNode) ->
698698
end.
699699

700700
erpc_call(Node, Mod, Fun, Args, FromNode) ->
701+
erpc_call(Node, Mod, Fun, Args, FromNode, 30000).
702+
703+
erpc_call(Node, Mod, Fun, Args, FromNode, Timeout) when Timeout >= 0 ->
701704
try
702705
erpc:call(Node, Mod, Fun, Args)
703706
catch
704-
error:{erpc, Reason} ->
707+
error:{erpc, _} = Reason:Stacktrace ->
705708
Peer = node(),
706709
_ = catch erpc:call(
707710
FromNode,
708711
logger, debug,
709712
["Peer discovery: temporary hidden node '~ts' "
710713
"failed to connect to '~ts': ~0p",
711714
[Peer, Node, Reason]]),
712-
timer:sleep(200),
713-
erpc_call(Node, Mod, Fun, Args, FromNode)
715+
Sleep = 200,
716+
timer:sleep(Sleep),
717+
NewTimeout = Timeout - Sleep,
718+
case NewTimeout >= 0 of
719+
true -> erpc_call(Node, Mod, Fun, Args, FromNode);
720+
false -> erlang:raise(error, Reason, Stacktrace)
721+
end
714722
end.
715723

716724
-spec sort_nodes_and_props(NodesAndProps) ->

0 commit comments

Comments
 (0)