Re: streaming replication breaks horribly if master crashes
Magnus Hagander <magnus@hagander.net>
From: Magnus Hagander <magnus@hagander.net>
To: Fujii Masao <masao.fujii@gmail.com>
Cc: Rafael Martinez <r.m.guerrero@usit.uio.no>, Heikki Linnakangas <heikki.linnakangas@enterprisedb.com>, PostgreSQL-development <pgsql-hackers@postgresql.org>
Date: 2010-06-17T08:08:05Z
Lists: pgsql-hackers
On Thu, Jun 17, 2010 at 09:20, Fujii Masao <masao.fujii@gmail.com> wrote: > On Thu, Jun 17, 2010 at 4:02 PM, Rafael Martinez > <r.m.guerrero@usit.uio.no> wrote: >> I tested this yesterday and I could not get any reaction from the wal >> receiver even after using minimal values compared to the default values . >> >> The default values in linux for tcp_keepalive_time, tcp_keepalive_intvl >> and tcp_keepalive_probes are 7200, 75 and 9. I reduced these values to >> 60, 3, 3 and nothing happened, it continuous with status ESTABLISHED >> after 60+3*3 seconds. >> >> I did not restart the network after I changed these values on the fly >> via /proc. I wonder if this is the reason the connection didn't die >> neither with the new keppalive values after the connection was broken. I >> will check this later today. > > Walreceiver uses libpq to communicate with the master. But keepalive is not > enabled in libpq currently. That is libpq code doesn't call something like > setsockopt(SOL_SOCKET, SO_KEEPALIVE). So even if you change the kernel options > for keepalive, it has no effect on walreceiver. Yeah, there was a patch submitted for this - I think it's on the CF page for 9.1... I guess if we really need it walreceiver could enable it - just get the socket with PQsocket(). -- Magnus Hagander Me: http://www.hagander.net/ Work: http://www.redpill-linpro.com/