From f66699ebde5f5c36327ae2eb682711f79d4c13c8 Mon Sep 17 00:00:00 2001 From: "Adam Ling (MSFT)" Date: Thu, 8 Jul 2021 09:06:28 -0700 Subject: [PATCH 1/2] fix async auto lock renewer empty tasks issue --- .../azure/servicebus/aio/_async_auto_lock_renewer.py | 3 ++- .../azure-servicebus/tests/async_tests/test_queues_async.py | 5 +++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/sdk/servicebus/azure-servicebus/azure/servicebus/aio/_async_auto_lock_renewer.py b/sdk/servicebus/azure-servicebus/azure/servicebus/aio/_async_auto_lock_renewer.py index 9c54ba652926..7421fbae1687 100644 --- a/sdk/servicebus/azure-servicebus/azure/servicebus/aio/_async_auto_lock_renewer.py +++ b/sdk/servicebus/azure-servicebus/azure/servicebus/aio/_async_auto_lock_renewer.py @@ -233,4 +233,5 @@ def register( async def close(self) -> None: """Cease autorenewal by cancelling any remaining open lock renewal futures.""" self._shutdown.set() - await asyncio.wait(self._futures) + if self._futures: + await asyncio.wait(self._futures) diff --git a/sdk/servicebus/azure-servicebus/tests/async_tests/test_queues_async.py b/sdk/servicebus/azure-servicebus/tests/async_tests/test_queues_async.py index 5dc475e3857f..0a27787742fb 100644 --- a/sdk/servicebus/azure-servicebus/tests/async_tests/test_queues_async.py +++ b/sdk/servicebus/azure-servicebus/tests/async_tests/test_queues_async.py @@ -782,6 +782,11 @@ async def test_async_queue_by_queue_client_conn_str_receive_handler_with_autoloc message = ServiceBusMessage("{}".format(i)) await sender.send_messages(message) + # issue https://github.com/Azure/azure-sdk-for-python/issues/19642 + empty_renewer = AutoLockRenewer() + async with empty_renewer: + pass + renewer = AutoLockRenewer() messages = [] async with sb_client.get_queue_receiver(servicebus_queue.name, max_wait_time=5, receive_mode=ServiceBusReceiveMode.PEEK_LOCK, prefetch_count=10) as receiver: From 4dcb8d477d30067c4e1dc93cf4cc69b941d851be Mon Sep 17 00:00:00 2001 From: "Adam Ling (MSFT)" Date: Thu, 8 Jul 2021 09:13:09 -0700 Subject: [PATCH 2/2] update changelog --- sdk/servicebus/azure-servicebus/CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/sdk/servicebus/azure-servicebus/CHANGELOG.md b/sdk/servicebus/azure-servicebus/CHANGELOG.md index a37af5f6a13a..19e5f7eb9134 100644 --- a/sdk/servicebus/azure-servicebus/CHANGELOG.md +++ b/sdk/servicebus/azure-servicebus/CHANGELOG.md @@ -7,6 +7,7 @@ ### Breaking Changes ### Bugs Fixed +- Fixed a bug that `azure.servicebus.aio.AutoLockRenewer` crashes on disposal if no messages have been registered (#19642). ### Other Changes