Skip to content

Commit 0a9c50f

Browse files
committed
Ensure peer:start/1 takes long names into account
Discovered while testing #10108 by using the lukebakken/docker-rabbitmq-cluster project. That project, by default, uses longnames for node names. When testing classic peer discovery, starting a peer node would time out every time.
1 parent 775fe81 commit 0a9c50f

File tree

2 files changed

+9
-7
lines changed

2 files changed

+9
-7
lines changed

deps/rabbit/src/rabbit_peer_discovery.erl

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -356,8 +356,7 @@ check_discovered_nodes_list_validity(DiscoveredNodes, BadNodeType)
356356

357357
query_node_props(Nodes) when Nodes =/= [] ->
358358
{Prefix, _Suffix} = rabbit_nodes_common:parts(node()),
359-
PeerName = lists:flatten(
360-
io_lib:format("~s-peerdisc-~s", [Prefix, os:getpid()])),
359+
PeerName = peer:random_name(Prefix),
361360
%% We go through a temporary hidden node to query all other discovered
362361
%% peers properties, instead of querying them directly.
363362
%%
@@ -372,15 +371,20 @@ query_node_props(Nodes) when Nodes =/= [] ->
372371
%%
373372
%% By using a temporary intermediate hidden node, we ask Erlang not to
374373
%% connect everyone automatically.
374+
Context = rabbit_prelaunch:get_context(),
375375
VMArgs0 = ["-hidden"],
376-
VMArgs1 = case rabbit_prelaunch:get_context() of
376+
VMArgs1 = case Context of
377377
#{erlang_cookie := ErlangCookie,
378378
var_origins := #{erlang_cookie := environment}} ->
379379
["-setcookie", atom_to_list(ErlangCookie) | VMArgs0];
380380
_ ->
381381
VMArgs0
382382
end,
383-
case peer:start(#{name => PeerName, args => VMArgs1}) of
383+
Longnames = case Context of
384+
#{nodename_type := longnames} -> true;
385+
_ -> false
386+
end,
387+
case peer:start(#{name => PeerName, longnames => Longnames, args => VMArgs1}) of
384388
{ok, Pid, Peer} ->
385389
?LOG_DEBUG(
386390
"Peer discovery: use temporary hidden node '~ts' to query "

deps/rabbitmq_prelaunch/src/rabbit_prelaunch_dist.erl

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ setup(#{nodename := Node, nodename_type := NameType} = Context) ->
1212
"~n== Erlang distribution ==", [],
1313
#{domain => ?RMQLOG_DOMAIN_PRELAUNCH}),
1414
?LOG_DEBUG(
15-
"Rqeuested node name: ~ts (type: ~ts)",
15+
"Requested node name: ~ts (type: ~ts)",
1616
[Node, NameType],
1717
#{domain => ?RMQLOG_DOMAIN_PRELAUNCH}),
1818
case node() of
@@ -149,5 +149,3 @@ set_credentials_obfuscation_secret() ->
149149
credentials_obfuscation_fallback_secret,
150150
<<"nocookie">>),
151151
ok = credentials_obfuscation:set_fallback_secret(Fallback).
152-
153-

0 commit comments

Comments
 (0)