From 5477457c7e0e1ad964737fd8cbacaa1cb3fce9e5 Mon Sep 17 00:00:00 2001 From: Zaiming Shi Date: Mon, 25 Jan 2021 19:09:41 +0100 Subject: [PATCH] fix(emqx_recon): fix badarg for remote module load --- apps/emqx_recon/src/emqx_recon_cli.erl | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/apps/emqx_recon/src/emqx_recon_cli.erl b/apps/emqx_recon/src/emqx_recon_cli.erl index 2f47fc8cd..587616ba7 100644 --- a/apps/emqx_recon/src/emqx_recon_cli.erl +++ b/apps/emqx_recon/src/emqx_recon_cli.erl @@ -42,7 +42,7 @@ cmd(["node_stats"]) -> recon:node_stats_print(10, 1000); cmd(["remote_load", Mod]) -> - emqx_ctl:print("~p~n", [recon:remote_load(list_to_atom(Mod))]); + emqx_ctl:print("~p~n", [remote_load(list_to_atom(Mod))]); cmd(["proc_count", Attr, N]) -> emqx_ctl:print("~p~n", [recon:proc_count(list_to_atom(Attr), list_to_integer(N))]); @@ -61,3 +61,12 @@ unload() -> concat(Key, Keyword) -> lists:concat([atom_to_list(Key), "/", atom_to_list(Keyword)]). +remote_load(Module) -> remote_load(nodes(), Module). + +%% recon:remote_load/1 has a bug, when nodes() returns [], it is +%% taken by recon as a node name. +%% before OTP 23, the call returns a 'badrpc' tuple +%% after OTP 23, it crashes with 'badarg' error +remote_load([], _Module) -> ok; +remote_load(Nodes, Module) -> recon:remote_load(Nodes, Module). +