-
Notifications
You must be signed in to change notification settings - Fork 2.6k
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
py-redis don't acknowledged disconnection from the server #3547
Comments
Also to mention the solution @vladvildanov proposed on #3509, Azure Redis don't make the parameters |
@adilbenameur How does it possible to reproduce this issue? Should I experience this issue by executing |
@vladvildanov Yes logically it should be reproducible this way. |
Also to give more context, I use Redis for a django app (used for cache and as message broker for celery). The error seems to occur only when celery tries to talk to Redis (and not everytime). This is a typical traceback:
Note that the ssl error is in reality a network error. |
The option retry_on_error is not implemented in the celery config. I am trying to if I can pass it through the redis url but I don’t understand how the code parsing retry_on_error works. For example, how can the function |
Were you able to reproduce the bug ? @vladvildanov If needed I can make a PR for this:
|
Hi,
I have a redis server hosted on Azure (Azure Redis PaaS). From time to time, I have connection error to this server with py-redis. From the network capture I have made with tcpdump, py-redis don't seems to respond to the server asking to drop the connection. It only respond to keepalive packets sent by the server. Finnnaly, the connection is dropped by the server with RST packet. I think the socket is broken on py-redis side but still stays in the connection pool. And when py-redis try to reuse it, an error
redis.exceptions.ConnectionError
is thrown because the socket is broken.Until commit acac4db, I think py-redis used selector to handle network events. But since then, I don't think their is something in the code to handle network events like disconnection.
Issue is related to #3509.
For now, I think I can use
retry_on_error
to reconnect afterConnectionError
but might be worth to implement a real fix.The text was updated successfully, but these errors were encountered: