diff options
| author | Michael Klishin <michael@novemberain.com> | 2015-11-16 18:33:32 +0300 |
|---|---|---|
| committer | Michael Klishin <michael@novemberain.com> | 2015-11-16 18:33:32 +0300 |
| commit | 8c5ff0aa3e7bd2d5fbe1a2537319ca91688cfc20 (patch) | |
| tree | a795c809c30ac222627f62143b0dd065a3ce45ca | |
| parent | cf2c1732da0c1c01108e1dbff977bd9858273e36 (diff) | |
| parent | da5bc96f3a0cad9b41a1735ec101faa4d6351d8b (diff) | |
| download | rabbitmq-server-git-8c5ff0aa3e7bd2d5fbe1a2537319ca91688cfc20.tar.gz | |
Merge pull request #425 from rabbitmq/rabbitmq-server-417
makes sures the aggregator process doesn't hang
| -rw-r--r-- | src/rabbit_control_main.erl | 16 |
1 files changed, 14 insertions, 2 deletions
diff --git a/src/rabbit_control_main.erl b/src/rabbit_control_main.erl index 2799d510d0..5d061252d0 100644 --- a/src/rabbit_control_main.erl +++ b/src/rabbit_control_main.erl @@ -769,8 +769,20 @@ call(Node, {Mod, Fun, Args}, InfoKeys, ToBinUtf8, Timeout) -> true -> lists:map(fun list_to_binary_utf8/1, Args); false -> Args end, - spawn_link(rabbit_cli, rpc_call, [Node, Mod, Fun, Args0, Ref = make_ref(), - Pid = self(), Timeout]), + Ref = make_ref(), + Pid = self(), + spawn_link( + fun () -> + case rabbit_cli:rpc_call(Node, Mod, Fun, Args0, + Ref, Pid, Timeout) of + {error, _} = Error -> + Pid ! {error, Error}; + {bad_argument, _} = Error -> + Pid ! {error, Error}; + _ -> + ok + end + end), rabbit_control_misc:wait_for_info_messages( Pid, Ref, InfoKeys, fun display_info_message/2, Timeout). |
