On Jun 19, 2010, at 21:13 , Tom Lane wrote:
> Robert Haas <robertmh...@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.

No, Robert is correct AFAIK. If you're *waiting* for data, TCP generates no 
traffic (expect with keepalive enabled). From the slave's kernel POV, a dead 
master is therefore indistinguishable from a inactive master.

Things are different from a sender's POV, though. Since sent data is ACK'ed by 
the receiving end, the TCP stack can (and does) detect a broken connection.

best regards,
Florian Pflug


-- 
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

Reply via email to