On Tue, Apr 14, 2015 at 5:12 PM, Jim Gronowski <jgronow...@ditronics.com> wrote: > Good day, everyone. > > > > I'm using HAproxy in front of a redis sentinel cluster. If has worked very > well, but this morning I ran into a small problem. The sentinel cluster > elected a new master, and HAproxy correctly detected the change and updated > accordingly (new connections went to the correct server). However, one of > our client web applications kept the connection open to the old server (now > a slave), generating errors. I'm guessing it's due to keepalives. > > > > Will 'option redispatch' correct this? If not, is there a preferred way to > close the connection and force the client to reconnect? It doesn't > necessarily have to be graceful, although that would be nice. > > > > Pertinent config below. > > > > -Jim > > > > > > defaults > > log global > > mode tcp > > option tcplog > > option dontlognull > > option clitcpka > > option srvtcpka > > timeout connect 5000 > > timeout client 3m > > timeout server 120000 > > errorfile 400 /etc/haproxy/errors/400.http > > errorfile 403 /etc/haproxy/errors/403.http > > errorfile 408 /etc/haproxy/errors/408.http > > errorfile 500 /etc/haproxy/errors/500.http > > errorfile 502 /etc/haproxy/errors/502.http > > errorfile 503 /etc/haproxy/errors/503.http > > errorfile 504 /etc/haproxy/errors/504.http > > > > frontend redisFE > > bind *:6379 > > mode tcp > > frontend redisFE > > bind *:6379 > > mode tcp > > maxconn 10240 > > default_backend redisBE > > > > backend redisBE > > mode tcp > > option tcplog > > balance source > > option tcp-check > > #tcp-check send AUTH\ foobar\r\n > > #tcp-check expect +OK > > tcp-check send PING\r\n > > tcp-check expect string +PONG > > tcp-check send info\ replication\r\n > > tcp-check expect string role:master > > tcp-check send QUIT\r\n > > tcp-check expect string +OK > > server redis-01 127.0.0.1:6379 maxconn 1024 check inter 1s > > server redis-02 127.0.0.2:6379 maxconn 1024 check inter 1s > > > > Ditronics, LLC email disclaimer: > This communication, including attachments, is intended only for the > exclusive use of addressee and may contain proprietary, confidential, or > privileged information. Any use, review, duplication, disclosure, > dissemination, or distribution is strictly prohibited. If you were not the > intended recipient, you have received this communication in error. Please > notify sender immediately by return e-mail, delete this communication, and > destroy any copies.
Hi Jim, You're missing the parameter on-marked-down shutdown-sessions on your server lines. It will kill sessions established on a server when it is marked as DOWN by the health checking. Baptiste