You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Python documentation on Tasks here. One important thing is that they reset contextvars.
To summarize:
aiohttp logging exception
+ ^
| |
| asyncio.create_task(handle_request()) | contextvars didn't go up again
| | (it's fixed now)
| |
v |
Sentry |
+ |
| |
| asyncio.create_task(handle_request()) | contextvars don't go up
| |
v |
I set contextvars +---------------------+
Exception
As long as the issue is not fixed in Sentry, I still can't use contextvars to log custom data using the standard Python logging library.
The only solution is to disable Sentry, then logging works OK with contextvars.
Any idea how to fix this in Sentry-aiohttp code?
I'd be happy to open a PR, but I'm not familiar enough with Sentry code, or Python in general, thus I need some help at least.
The text was updated successfully, but these errors were encountered:
I see, it seems the double-task thing may not be necessary at all assuming all aiohttp versions we care about already create a task. I would be fine with a PR that does not wrap anything in a task at all. This is very likely just cargo-culted from the Sanic integration.
aiohttp integration currently re-create a task to encapsulate the request
handler.
But:
- aiohttp already does it.
- contextvars created in it can't be read by aiohttp.
It's an issue for users custom logger.
Fix#670
Hi!
I was looking to add a custom logging filter to my aiohttp server during exception that are catched here.
It's useful and easy to do, but, it occurs that, in my custom logging filter, I can't find contextvars that I have created in my request handler task.
Two things caused this problem:
→ This was fixed in aio-libs/aiohttp@9997cae (because users asked to be able to access
contextvars
-- like us). It was even backported to aiohttp version 3.7.Python documentation on Tasks here. One important thing is that they reset contextvars.
To summarize:
As long as the issue is not fixed in Sentry, I still can't use
contextvars
to log custom data using the standard Pythonlogging
library.The only solution is to disable Sentry, then logging works OK with contextvars.
Any idea how to fix this in Sentry-aiohttp code?
I'd be happy to open a PR, but I'm not familiar enough with Sentry code, or Python in general, thus I need some help at least.
The text was updated successfully, but these errors were encountered: