On 06/19/2010 09:13 PM, Tom Lane wrote:
> Robert Haas<robertmhaas@gmail.com> writes:
>> Right now, if the SR master reboots unexpectedly (say, power plug pull
>> and restart), the slave never notices. It just sits there forever
>> waiting for the next byte of data from the master to arrive (which it
>> never will).
>
> This is nonsense --- the slave's kernel *will* eventually notice that
> the TCP connection is dead, and tell walreceiver so. I don't doubt
> that the standard TCP timeout is longer than people want to wait for
> that, but claiming that it will never happen is simply wrong.
>
> I think that enabling slave-side TCP keepalives and control of the
> keepalive timeout parameters is probably sufficient for 9.0 here.
yeah I would agree - we do have tcp keepalive code in the backend for a
while now and adding that to libpq as well just seems like an easy
enough fix at this time in the release cycle.
Stefan