You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
fix(redis): connect has no timeout, leaks the socket after a failed AUTH, and is not single-flight #1307
No timeout._conn.connect(host, port) and SecureSocket.connect(...) have no timeout, unlike PostgreSQL / MySQL (10 s). A host that drops packets keeps the spinner and Test Connection busy for the OS TCP timeout (about two minutes).
Leaked socket. When AUTH or PING throws, the catch sets _conn = null and _command = null without closing the connection. disconnect() closes only if (c != null && wasConnected). Every failed attempt, including each Test Connection with a wrong password, leaves an open socket.
No single-flight. PostgreSQL and MySQL made connect() single-flight (two callers opened two sockets and two SSH tunnels). Redis still allows two concurrent _openConnections: the second overwrites _conn, the first socket and its tunnel handle are leaked.
Scope
Add a connect timeout (10 s, configurable like the others) to plain and TLS connects.
Close the connection in the failure path.
Single-flight connect() as in PostgresConnection.connect.
Tests with a fake server / injected connector: timeout, close after AUTH failure, one attempt for two callers.
Acceptance
An unreachable host fails after the timeout with a timed out message.
A failed AUTH closes the socket.
Two concurrent connect() calls open one connection and one tunnel.
Activity
fix(redis): connect limit is a seam so widget tests do not leave a ti…
Merge pull request #1319 from QueryaHub/fix/1307-redis-connect
ZhuchkaTriplesix commentedon Oct 10, 2026
Сделано в #1319, смержено в dev.