New issue 224 by trickie: add TCP keepalive configuration options for
client connections
http://code.google.com/p/redis/issues/detail?id=224
What steps will reproduce the problem?
1. Connect a client or slave to a master via a proxy or loadbalancer (such
as a LVS setup using
TCP tunneling)
2. Keep the client idle for some time (depends on the config of the proxy
or loadbalancer)
3.
What is the expected output? What do you see instead?
Client should stay connected, and the socket/fd on both end stays open, but
the connection is
lost in the middle when the loadbalancer thinks the connection is no longer
active or alive.
Instead I see the loadbalancer dropping the connection. Our setup uses TCP
tunneling, so the
breaking of the connection is not detected by either end of the connection,
and particularly on the
server-side, the amount of file descriptors open keeps rising. Having a
client connection timeout
set in the redis.conf is a workaround, but does not fix the issue.
What version of the product are you using? On what operating system?
1.2.6 - current stable
Please provide any additional information below.
I have a patch to add a configuration option to set proper TCP keepalive
options on all client
connections: http://github.com/trickie/redis/
--
You received this message because you are listed in the owner
or CC fields of this issue, or because you starred this issue.
You may adjust your issue notification preferences at:
http://code.google.com/hosting/settings
My patch (at least on Linux) adds an option to specify the interval in
which to start sending probes, the same
interval between probes, and will also break the connection when a probes
reveals a broken connection
The patch in the git tree doesn't quite apply on 1.2.6. Attached to this
ticket is a patch for 1.2.6 that is combined
with my replication sync patch from 203.
Attachments:
redis-all-in-one.patch 12.3 KB