summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorJean-Sebastien Pedron <jean-sebastien@rabbitmq.com>2014-11-27 13:59:05 +0100
committerJean-Sebastien Pedron <jean-sebastien@rabbitmq.com>2014-11-27 13:59:05 +0100
commitbecc3d30b4ac6e15ef15ade129a6eba8b3f3392a (patch)
treec94f1207faa495c33276ca2d8eb5a59ea05a0057 /src
parentd3953c20357d98971fe3cb841a16db6a8122439b (diff)
downloadrabbitmq-server-git-becc3d30b4ac6e15ef15ade129a6eba8b3f3392a.tar.gz
Don't log any warning if a TCP connection is closed immediately after open
This happens with load balancers TCP healthcheck for instance.
Diffstat (limited to 'src')
-rw-r--r--src/rabbit_reader.erl16
1 files changed, 12 insertions, 4 deletions
diff --git a/src/rabbit_reader.erl b/src/rabbit_reader.erl
index ca73006aed..e96a911cd1 100644
--- a/src/rabbit_reader.erl
+++ b/src/rabbit_reader.erl
@@ -334,10 +334,18 @@ mainloop(Deb, Buf, BufLen, State = #v1{sock = Sock}) ->
end
end.
-stop(closed, State) -> maybe_emit_stats(State),
- throw(connection_closed_abruptly);
-stop(Reason, State) -> maybe_emit_stats(State),
- throw({inet_error, Reason}).
+stop(closed, #v1{connection_state = pre_init} = State) ->
+ %% The connection was closed before any packet was received. It's
+ %% probably a load-balancer healthcheck: don't consider this a
+ %% failure.
+ maybe_emit_stats(State),
+ ok;
+stop(closed, State) ->
+ maybe_emit_stats(State),
+ throw({connection_closed_abruptly, State});
+stop(Reason, State) ->
+ maybe_emit_stats(State),
+ throw({inet_error, Reason}).
handle_other({conserve_resources, Source, Conserve},
State = #v1{throttle = Throttle = #throttle{alarmed_by = CR}}) ->