From 8e78c739e34fbfcbb2ab5fb15c8b6dada90b7e7b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Carl=20H=C3=B6rberg?= Date: Fri, 27 Sep 2024 14:13:28 +0200 Subject: [PATCH] close amqp connection on error Don't try to continue to read from a client socket in the case of FrameDecode or general exceptions. Chance is that a CloseOk never will be receivied and instead new FrameDecode error will be raised again and again. --- src/lavinmq/amqp/client.cr | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/lavinmq/amqp/client.cr b/src/lavinmq/amqp/client.cr index 08c948256..0fa5366d6 100644 --- a/src/lavinmq/amqp/client.cr +++ b/src/lavinmq/amqp/client.cr @@ -141,12 +141,14 @@ module LavinMQ rescue ex : AMQP::Error::FrameDecode @log.error { ex.inspect_with_backtrace } send_frame_error(ex.message) + break rescue ex : IO::Error | OpenSSL::SSL::Error @log.debug { "Lost connection, while reading (#{ex.inspect})" } unless closed? break rescue ex : Exception @log.error { "Unexpected error, while reading: #{ex.inspect_with_backtrace}" } send_internal_error(ex.message) + break end ensure cleanup