Re: TCP keepalive support for libpq
Andrew Chernow <ac@esilo.com>
From: Andrew Chernow <ac@esilo.com>
To: Tollef Fog Heen <tollef.fog.heen@collabora.co.uk>
Cc: pgsql-hackers@postgresql.org
Date: 2010-02-09T14:34:10Z
Lists: pgsql-hackers
Tollef Fog Heen wrote: > (please Cc me on replies, I am not subscribed) > > Hi, > > libpq currently does not use TCP keepalives. This is a problem in our > case where we have some clients waiting for notifies and then the > connection is dropped on the server side. The client never gets the FIN > and thinks the connection is up. The attached patch unconditionally > adds keepalives. I chose unconditionally as this is what the server > does. We didn't need the ability to tune the timeouts, but that could > be added with reasonable ease. ISTM that the default behavior should be keep alives disabled, as it is now, and those wanting it can just set it in their apps: setsockopt(PQsocket(conn), SOL_SOCKET, SO_KEEPALIVE, ...) If you really want libpq to manage this, I think you need to expose the probe interval and timeouts. There should be some platform checks as well. Check out... http://www.mail-archive.com/pgsql-hackers@postgresql.org/msg128603.html -- Andrew Chernow eSilo, LLC every bit counts http://www.esilo.com/