-
Notifications
You must be signed in to change notification settings - Fork 103
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
integrations: aioredis creates coroutines that do not execute for sync operations #623
Comments
We can reproduce and confirm this is an issue, we'll get a patch out soon to avoid breaking the underlying package functionality. Unfortunately full transaction support is a bit large for a patch and would be a new feature. It will need some development time so for the time being transactions will function but won't send up any telemetry data while we work to support them. |
Is this really fixed? Still seeing this error with latest library release... I'm using FastApi with aioredis to build a realtime application with pub/sub pattern. On FastApi startup I create an asyncio task that subscribes to a redis channel pattern. However when using the latest release I'm facing similar issue as @vishal-wadhwa , I get |
The latest release of the agent should have a fix for this issue. If this is still an issue for you with the latest version (v8.10.0), we can reopen this ticket. |
Description
In order to record Redis database transactions via
aioredis
client library, we upgraded the newrelic python agent from v7.4.0.172 to v7.16.0.178Service degradation was observed as the update was rolled out in production.
The cause was that the
newrelic
wrappedaioredis
functions for Pipelines were failing to execute.To me, it seems that the new
aioredis
integration is wrapping all of the functions with async and effectively returning acoroutine
while the original implementation returns anAwaitable
(Pipeline) always, that need not be awaited immediately.Since
aioredis
supports both sync and async callbacks in the transaction function, the newrelic package should too.Refer to the reproducible example below.
Expected Behavior
All functions to work the same as without newrelic integrations. The functionality should not break.
Troubleshooting or NR Diag results
This log was printed to stderr when
aioredis
pipeline set was used in a transaction.Steps to Reproduce
Instructions and repro here -
https://gist.github.com/vishal-wadhwa/337ff7c7e3146ede0849cbbbfff107b0
Your Environment
Not relevant. Reproducible in all environments.
Additional context
NA
The text was updated successfully, but these errors were encountered: