Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

RuntimeWarning: coroutine '_ContextManagerMixin.__aexit__' was never awaited #158

Closed
rad-pat opened this issue Dec 13, 2022 · 0 comments · Fixed by #159
Closed

RuntimeWarning: coroutine '_ContextManagerMixin.__aexit__' was never awaited #158

rad-pat opened this issue Dec 13, 2022 · 0 comments · Fixed by #159

Comments

@rad-pat
Copy link

rad-pat commented Dec 13, 2022

Since upgrading to latest aiormq, we see a number of these warnings in the logs. I enabled tracemalloc in our CI environment to reveal this Traceback. Hope it is useful to identify an issue?

RuntimeWarning: coroutine '_ContextManagerMixin.__aexit__' was never awaited
Coroutine created at (most recent call last)
  File "/home/plaid/src/plaid/plaid/main.py", line 14, in <module>
    uvicorn.run(app, host='0.0.0.0', port=8000, access_log=False, proxy_headers=True, forwarded_allow_ips='*')
  File "/usr/local/lib/python3.11/site-packages/uvicorn/main.py", line 569, in run
    server.run()
  File "/usr/local/lib/python3.11/site-packages/uvicorn/server.py", line 60, in run
    return asyncio.run(self.serve(sockets=sockets))
  File "/usr/local/lib/python3.11/asyncio/runners.py", line 190, in run
    return runner.run(main)
  File "/usr/local/lib/python3.11/asyncio/runners.py", line 118, in run
    return self._loop.run_until_complete(task)
  File "/usr/local/lib/python3.11/site-packages/aiormq/connection.py", line 512, in __reader
    async for weight, channel, frame in frame_receiver:
  File "/usr/local/lib/python3.11/site-packages/aiormq/connection.py", line 191, in __anext__
    return await self.get_frame()
  File "/usr/local/lib/python3.11/site-packages/aiormq/connection.py", line 149, in get_frame
    async with countdown.enter_context(self.lock):
  File "/usr/local/lib/python3.11/site-packages/aiormq/tools.py", line 110, in __aexit__
    self.ctx.__aexit__(exc_type, exc_val, exc_tb),

Potentially also useful, I see a Traceback from the early morning in the CI environment where very little is happening overnight, just a daemon task checking in which is publishing a message in RMQ. Somehow an asyncio.TimeoutError has occurred generating a Traceback that looks related to the same code:

Traceback (most recent call last):
  File "/usr/local/lib/python3.11/site-packages/aiormq/abc.py", line 40, in __inner
    return await self.task
           ^^^^^^^^^^^^^^^
asyncio.exceptions.CancelledError

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/home/plaid/src/plaid/plaid/core/utility/events.py", line 91, in _publish
    topic_exchange = await channel.get_exchange('amq.topic')
                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/aio_pika/channel.py", line 277, in get_exchange
    return await self.declare_exchange(name=name, passive=True)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/aio_pika/robust_channel.py", line 145, in declare_exchange
    await super().declare_exchange(
  File "/usr/local/lib/python3.11/site-packages/aio_pika/channel.py", line 250, in declare_exchange
    await exchange.declare(timeout=timeout)
  File "/usr/local/lib/python3.11/site-packages/aio_pika/exchange.py", line 55, in declare
    return await self.channel.exchange_declare(
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/aiormq/channel.py", line 727, in exchange_declare
    return await self.rpc(
           ^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/aiormq/base.py", line 166, in wrap
    return await self.create_task(func(self, *args, **kwargs))
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/aiormq/abc.py", line 42, in __inner
    raise self.exception from e
  File "/usr/local/lib/python3.11/asyncio/tasks.py", line 684, in _wrap_awaitable
    return (yield from awaitable.__await__())
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/aiormq/abc.py", line 42, in __inner
    raise self.exception from e
  File "/usr/local/lib/python3.11/asyncio/tasks.py", line 684, in _wrap_awaitable
    return (yield from awaitable.__await__())
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/aiormq/abc.py", line 42, in __inner
    raise self.exception from e
  File "/usr/local/lib/python3.11/asyncio/tasks.py", line 684, in _wrap_awaitable
    return (yield from awaitable.__await__())
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/aiormq/abc.py", line 40, in __inner
    return await self.task
           ^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/aiormq/connection.py", line 512, in __reader
    async for weight, channel, frame in frame_receiver:
  File "/usr/local/lib/python3.11/site-packages/aiormq/connection.py", line 191, in __anext__
    return await self.get_frame()
           ^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/aiormq/connection.py", line 149, in get_frame
    async with countdown.enter_context(self.lock):
  File "/usr/local/lib/python3.11/site-packages/aiormq/tools.py", line 109, in __aexit__
    return await self.countdown(
                 ^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/aiormq/tools.py", line 86, in __call__
    timeout = self.get_timeout()
              ^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/aiormq/tools.py", line 81, in get_timeout
    raise asyncio.TimeoutError
TimeoutError
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant