From f21d7947f9debd96f3aa7e0d2338e94921bb5610 Mon Sep 17 00:00:00 2001 From: EntropyYue <164553692+EntropyYue@users.noreply.github.com> Date: Mon, 27 Jul 2026 12:30:00 +0800 Subject: [PATCH] fix: Set default Redis socket timeout to None (#27104) --- backend/open_webui/env.py | 6 ++++++ backend/open_webui/utils/redis.py | 3 +++ 2 files changed, 9 insertions(+) diff --git a/backend/open_webui/env.py b/backend/open_webui/env.py index dff1c515b7..96a3d2e6e4 100644 --- a/backend/open_webui/env.py +++ b/backend/open_webui/env.py @@ -389,6 +389,12 @@ try: except ValueError: REDIS_SOCKET_CONNECT_TIMEOUT = None +REDIS_SOCKET_TIMEOUT = os.getenv('REDIS_SOCKET_TIMEOUT', '') +try: + REDIS_SOCKET_TIMEOUT = float(REDIS_SOCKET_TIMEOUT) +except ValueError: + REDIS_SOCKET_TIMEOUT = None + # Whether to enable TCP SO_KEEPALIVE on Redis client sockets. Opt-in: # defaults to off so behavior is unchanged for existing deployments. When # enabled, the kernel sends TCP keepalive probes on idle connections so diff --git a/backend/open_webui/utils/redis.py b/backend/open_webui/utils/redis.py index 4fbc4ba12d..90d81abb26 100644 --- a/backend/open_webui/utils/redis.py +++ b/backend/open_webui/utils/redis.py @@ -23,6 +23,7 @@ from open_webui.env import ( REDIS_SENTINEL_PORT, REDIS_SOCKET_CONNECT_TIMEOUT, REDIS_SOCKET_KEEPALIVE, + REDIS_SOCKET_TIMEOUT, REDIS_URL, ) @@ -257,6 +258,8 @@ def _socket_options() -> dict[str, Any]: opts: dict[str, Any] = {} if REDIS_SOCKET_CONNECT_TIMEOUT is not None: opts['socket_connect_timeout'] = REDIS_SOCKET_CONNECT_TIMEOUT + if REDIS_SOCKET_TIMEOUT: + opts['socket_timeout'] = REDIS_SOCKET_TIMEOUT if REDIS_SOCKET_KEEPALIVE: opts['socket_keepalive'] = True if REDIS_HEALTH_CHECK_INTERVAL: