Open notmeta opened 1 year ago
Since Python 3.8, aioamqp no longer catches and reraises asyncio.CancelledError in protocol.run, leading to delayed manual disconnections.
asyncio.CancelledError
A fix is just handling both asyncio.CancelledError and Exception like so:
Exception
async def run(self): while not self.stop_now.is_set(): try: await self.dispatch_frame() except exceptions.AmqpClosedConnection as exc: logger.info("Close connection") self.stop_now.set() self._close_channels(exception=exc) except (asyncio.CancelledError, Exception): logger.exception('error on dispatch')
Since Python 3.8, aioamqp no longer catches and reraises
asyncio.CancelledError
in protocol.run, leading to delayed manual disconnections.A fix is just handling both
asyncio.CancelledError
andException
like so: