summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/rabbit_reader.erl16
1 files changed, 14 insertions, 2 deletions
diff --git a/src/rabbit_reader.erl b/src/rabbit_reader.erl
index fec8f3077b..6a9eafd9fc 100644
--- a/src/rabbit_reader.erl
+++ b/src/rabbit_reader.erl
@@ -196,7 +196,17 @@ socket_error(Reason) when is_atom(Reason) ->
log(error, "Error on AMQP connection ~p: ~s~n",
[self(), rabbit_misc:format_inet_error(Reason)]);
socket_error(Reason) ->
- log(error, "Error on AMQP connection ~p:~n~p~n", [self(), Reason]).
+ Level =
+ case Reason of
+ {ssl_upgrade_error, closed} ->
+ %% The socket was closed while upgrading to SSL.
+ %% This is presumably a TCP healthcheck, so don't log
+ %% it unless specified otherwise.
+ debug;
+ _ ->
+ error
+ end,
+ log(Level, "Error on AMQP connection ~p:~n~p~n", [self(), Reason]).
inet_op(F) -> rabbit_misc:throw_on_error(inet_error, F).
@@ -345,6 +355,8 @@ mainloop(Deb, Buf, BufLen, State = #v1{sock = Sock,
State#v1{pending_recv = false});
closed when State#v1.connection_state =:= closed ->
ok;
+ closed when CS =:= pre_init andalso Buf =:= [] ->
+ stop(tcp_healthcheck, State);
closed ->
stop(closed, State);
{error, Reason} ->
@@ -359,7 +371,7 @@ mainloop(Deb, Buf, BufLen, State = #v1{sock = Sock,
end
end.
-stop(closed, #v1{connection_state = pre_init} = State) ->
+stop(tcp_healthcheck, State) ->
%% The connection was closed before any packet was received. It's
%% probably a load-balancer healthcheck: don't consider this a
%% failure.