-
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
Redis client-side caching connection deadlocks when health_check_interval is non-zero #3470
Comments
Hi! could you please provide more information how to reproduce the actual deadlock? I tried simple |
Hi @vladvildanov, a typo regarding
(I am making this correction in the original description) Regarding how to reproduce, I have two separate applications independently reading and writing to the Redis DB in parallel. But in this particular case, the issue is one process periodically calling |
Another mistake I made was saying that the deadlock occurred during a call to |
@michael-chaos I will close this issue for now, feel free to re-open it if you gather more information |
Version: 5.2.1
Platform: Windows 11 WSL -- Ubuntu 22.04.5 LTS (kernel
5.15.167.4-microsoft-standard-WSL2 SMP
)Description: Deadlock encountered when performing a
set()
call on aRedis
connection with client-side caching enabled and thehealth_check_interval
initializer arg non-zero.Stack Trace:
With my limited understanding of the Redis server and client implementations, it appears that the connection is processing a "PONG" response from the server in addition to a cache invalidation response/notification (i.e., some kind of multi-part response).
Within the
connection.CacheProxyConnection
class,self._cache_lock
is a non-reentrantthreading.Lock
object. I suspect that changing it to a reentrantthreading.RLock
object may resolve this issue?The text was updated successfully, but these errors were encountered: