From 2c38a0022b44b2009a0191767186d76f123d0267 Mon Sep 17 00:00:00 2001 From: Luke Bakken Date: Thu, 21 Mar 2024 10:22:50 -0700 Subject: [PATCH] Ensure that peer node deals with unicode Follow-up to #10759 Related to #10194 Related to erlang/otp#8289 --- deps/rabbit/src/rabbit_peer_discovery.erl | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/deps/rabbit/src/rabbit_peer_discovery.erl b/deps/rabbit/src/rabbit_peer_discovery.erl index b45871b0aea4..61bb3c7b993e 100644 --- a/deps/rabbit/src/rabbit_peer_discovery.erl +++ b/deps/rabbit/src/rabbit_peer_discovery.erl @@ -372,7 +372,7 @@ query_node_props(Nodes) when Nodes =/= [] -> %% By using a temporary intermediate hidden node, we ask Erlang not to %% connect everyone automatically. Context = rabbit_prelaunch:get_context(), - VMArgs0 = ["-hidden"], + VMArgs0 = ["+pc","unicode","-hidden"], VMArgs1 = case init:get_argument(boot) of {ok, [[BootFileArg]]} -> ["-boot", BootFileArg | VMArgs0]; @@ -460,7 +460,7 @@ maybe_add_inetrc_arguments1(VMArgs, Val) -> %% The filename argument must be passed as a quoted string so that the %% command line is correctly parsed as an Erlang string by the temporary %% hidden node. - ValString = rabbit_misc:format("~0p", [Val]), + ValString = rabbit_misc:format("~0p", [unicode:characters_to_list(Val)]), ["-kernel", "inetrc", ValString | VMArgs]. maybe_add_tls_arguments(VMArgs) -> @@ -516,7 +516,8 @@ maybe_add_tls_arguments(VMArgs) -> %% "no_dot_erlang","-hidden"], VMArgs1 = case init:get_argument(ssl_dist_opt) of {ok, SslDistOpts0} -> - SslDistOpts1 = [["-ssl_dist_opt" | SslDistOpt] + SslDistOpts1 = [["-ssl_dist_opt" | + unicode:characters_to_list(SslDistOpt)] || SslDistOpt <- SslDistOpts0], SslDistOpts2 = lists:concat(SslDistOpts1), SslDistOpts2 ++ VMArgs; @@ -533,7 +534,8 @@ maybe_add_tls_arguments(VMArgs) -> %% argument list. VMArgs2 = case init:get_argument(ssl_dist_optfile) of {ok, [[SslDistOptfileArg]]} -> - ["-ssl_dist_optfile", SslDistOptfileArg | VMArgs1]; + ["-ssl_dist_optfile", + unicode:characters_to_list(SslDistOptfileArg) | VMArgs1]; _ -> VMArgs1 end,