summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSimon MacMullen <simon@rabbitmq.com>2013-12-17 15:42:06 +0000
committerSimon MacMullen <simon@rabbitmq.com>2013-12-17 15:42:06 +0000
commit6c8e13f5d57f5ebac9937ca9110823bbe71d3368 (patch)
tree145cb4111bb48f43d0350089fbe48f9a1727a1ef
parent853926fa4b462f0443b8d132ff29428da6294917 (diff)
downloadrabbitmq-server-6c8e13f5d57f5ebac9937ca9110823bbe71d3368.tar.gz
Treat connection errors on write the same as on read.
-rw-r--r--src/rabbit_reader.erl3
-rw-r--r--src/rabbit_writer.erl2
2 files changed, 4 insertions, 1 deletions
diff --git a/src/rabbit_reader.erl b/src/rabbit_reader.erl
index 46c5c42a..32629235 100644
--- a/src/rabbit_reader.erl
+++ b/src/rabbit_reader.erl
@@ -808,6 +808,9 @@ handle_method0(MethodName, FieldsBin,
State)
catch exit:#amqp_error{method = none} = Reason ->
handle_exception(State, 0, Reason#amqp_error{method = MethodName});
+ throw:{writer_inet_error, closed} ->
+ maybe_emit_stats(State),
+ throw(connection_closed_abruptly);
Type:Reason ->
Stack = erlang:get_stacktrace(),
handle_exception(State, 0, {Type, Reason, MethodName, Stack})
diff --git a/src/rabbit_writer.erl b/src/rabbit_writer.erl
index 34dd3d3b..92d48e63 100644
--- a/src/rabbit_writer.erl
+++ b/src/rabbit_writer.erl
@@ -272,7 +272,7 @@ assemble_frames(Channel, MethodRecord, Content, FrameMax, Protocol) ->
[MethodFrame | ContentFrames].
tcp_send(Sock, Data) ->
- rabbit_misc:throw_on_error(inet_error,
+ rabbit_misc:throw_on_error(writer_inet_error,
fun () -> rabbit_net:send(Sock, Data) end).
internal_send_command(Sock, Channel, MethodRecord, Protocol) ->