From 5465dbac7eaa0c3a66cb469d4c9e71a47ce61843 Mon Sep 17 00:00:00 2001 From: swathipil Date: Fri, 15 Mar 2024 13:06:06 -0700 Subject: [PATCH 1/2] update ValueError to AMQPConnectionError for closed connection --- .../azure/servicebus/_pyamqp/_connection.py | 5 ++++- .../azure/servicebus/_pyamqp/_transport.py | 8 ++++++-- .../azure/servicebus/_pyamqp/aio/_connection_async.py | 5 ++++- 3 files changed, 14 insertions(+), 4 deletions(-) diff --git a/sdk/servicebus/azure-servicebus/azure/servicebus/_pyamqp/_connection.py b/sdk/servicebus/azure-servicebus/azure/servicebus/_pyamqp/_connection.py index 0e57cbe55752..e489e7dd41ec 100644 --- a/sdk/servicebus/azure-servicebus/azure/servicebus/_pyamqp/_connection.py +++ b/sdk/servicebus/azure-servicebus/azure/servicebus/_pyamqp/_connection.py @@ -667,7 +667,10 @@ def _process_outgoing_frame(self, channel: int, frame) -> None: ConnectionState.OPEN_SENT, ConnectionState.OPENED, ]: - raise ValueError("Connection not open.") + raise AMQPConnectionError( + ErrorCondition.SocketError, + description="Connection not open." + ) now = time.time() if get_local_timeout( now, diff --git a/sdk/servicebus/azure-servicebus/azure/servicebus/_pyamqp/_transport.py b/sdk/servicebus/azure-servicebus/azure/servicebus/_pyamqp/_transport.py index c75253ca1fef..c695591b3431 100644 --- a/sdk/servicebus/azure-servicebus/azure/servicebus/_pyamqp/_transport.py +++ b/sdk/servicebus/azure-servicebus/azure/servicebus/_pyamqp/_transport.py @@ -648,7 +648,11 @@ def _write(self, s): """Write a string out to the SSL socket fully. :param str s: The string to write. """ - write = self.sock.send + try: + write = self.sock.send + except AttributeError: + raise IOError("Socket has already been closed.") from None + while s: try: n = write(s) @@ -659,7 +663,7 @@ def _write(self, s): # None. n = 0 if not n: - raise IOError("Socket closed") + raise IOError("Socket has already been closed.") s = s[n:] def negotiate(self): diff --git a/sdk/servicebus/azure-servicebus/azure/servicebus/_pyamqp/aio/_connection_async.py b/sdk/servicebus/azure-servicebus/azure/servicebus/_pyamqp/aio/_connection_async.py index ceb32b96e11f..c68eaa9002e8 100644 --- a/sdk/servicebus/azure-servicebus/azure/servicebus/_pyamqp/aio/_connection_async.py +++ b/sdk/servicebus/azure-servicebus/azure/servicebus/_pyamqp/aio/_connection_async.py @@ -682,7 +682,10 @@ async def _process_outgoing_frame(self, channel: int, frame) -> None: ConnectionState.OPEN_SENT, ConnectionState.OPENED, ]: - raise ValueError("Connection not open.") + raise AMQPConnectionError( + ErrorCondition.SocketError, + description="Connection not open." + ) now = time.time() if get_local_timeout( now, From 9bb6981c5e7d845ef40b4a0dfdd937638c7a15d8 Mon Sep 17 00:00:00 2001 From: swathipil Date: Mon, 18 Mar 2024 10:03:52 -0700 Subject: [PATCH 2/2] revert socket closed message --- .../azure-servicebus/azure/servicebus/_pyamqp/_transport.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sdk/servicebus/azure-servicebus/azure/servicebus/_pyamqp/_transport.py b/sdk/servicebus/azure-servicebus/azure/servicebus/_pyamqp/_transport.py index c695591b3431..3f09098e4f09 100644 --- a/sdk/servicebus/azure-servicebus/azure/servicebus/_pyamqp/_transport.py +++ b/sdk/servicebus/azure-servicebus/azure/servicebus/_pyamqp/_transport.py @@ -663,7 +663,7 @@ def _write(self, s): # None. n = 0 if not n: - raise IOError("Socket has already been closed.") + raise IOError("Socket closed.") s = s[n:] def negotiate(self):