mirror of
https://github.com/BerriAI/litellm.git
synced 2026-09-20 00:11:50 +00:00
A ConnectionError/TimeoutError on one node of the async Redis Cluster client made redis-py tear down every node's connections and force every other concurrent caller through the shared reinit lock, turning one client-side timeout under event-loop saturation into a proxy-wide latency spike while Redis itself stayed healthy. Confirmed live against a local 3-master cluster: pausing one node made 100% of concurrent commands to the other two, untouched nodes stall for the full pause duration; after this change, zero. LiteLLMAsyncRedisCluster overrides only the ConnectionError/TimeoutError branch of _execute_command to reset the one node that failed, mirroring what a plain non-cluster Redis client already does when a pooled connection errors. Every other branch (MOVED, ASK, CLUSTERDOWN, slot-not-covered) is unchanged, since those already carry real evidence the topology changed. |
||
|---|---|---|
| .. | ||
| test_azure_blob_cache.py | ||
| test_caching.py | ||
| test_caching_handler.py | ||
| test_check_and_fix_namespace_none_guard.py | ||
| test_disk_cache.py | ||
| test_dual_cache.py | ||
| test_embedding_router.py | ||
| test_evicted_client_closer.py | ||
| test_gcs_cache.py | ||
| test_in_memory_cache.py | ||
| test_llm_caching_handler.py | ||
| test_llm_client_cache_e2e.py | ||
| test_qdrant_semantic_cache.py | ||
| test_redis_cache.py | ||
| test_redis_cluster_cache.py | ||
| test_redis_cluster_node_isolation.py | ||
| test_redis_connection_pool.py | ||
| test_redis_semantic_cache.py | ||
| test_s3_cache.py | ||
| test_valkey_semantic_cache.py | ||