summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Klishin <michael@novemberain.com>2017-10-31 14:48:32 +0300
committerGitHub <noreply@github.com>2017-10-31 14:48:32 +0300
commitde5bc6ef8fe782a5bb1901bf44a68d889418bf9b (patch)
treed802c60cfc6b31a595486f904e18aed5c1a16436
parentb822e85b94278282ed014cfc61afc836df132108 (diff)
parent533d2df5dd1fbce2eb2a32799f78b785e476bd08 (diff)
downloadrabbitmq-server-git-de5bc6ef8fe782a5bb1901bf44a68d889418bf9b.tar.gz
Merge pull request #1413 from rabbitmq/mk-dont-throw-when-connection-pid-is-non-localrabbitmq_v3_6_13_rc2rabbitmq_v3_6_13
Make rabbit_networking:close_connection/2 more benign
-rw-r--r--src/rabbit_networking.erl12
1 files changed, 9 insertions, 3 deletions
diff --git a/src/rabbit_networking.erl b/src/rabbit_networking.erl
index 8b201fd87e..d64b8500b9 100644
--- a/src/rabbit_networking.erl
+++ b/src/rabbit_networking.erl
@@ -305,10 +305,16 @@ connection_info_all(Items, Ref, AggregatorPid) ->
connections()).
close_connection(Pid, Explanation) ->
- rabbit_log:info("Closing connection ~p because ~p~n", [Pid, Explanation]),
case lists:member(Pid, connections()) of
- true -> rabbit_reader:shutdown(Pid, Explanation);
- false -> throw({error, {not_a_connection_pid, Pid}})
+ true ->
+ Res = rabbit_reader:shutdown(Pid, Explanation),
+ rabbit_log:info("Closing connection ~p because ~p~n", [Pid, Explanation]),
+ Res;
+ false ->
+ rabbit_log:warning("Asked to close connection ~p (reason: ~p) "
+ "but no running cluster node reported it as an active connection. Was it already closed? ~n",
+ [Pid, Explanation]),
+ ok
end.
force_connection_event_refresh(Ref) ->