(2013/04/10 22:55), Andres Freund wrote:
> On 2013-04-10 22:38:07 +0900, Kyotaro HORIGUCHI wrote:
>> On Wed, Apr 10, 2013 at 6:57 PM, Dang Minh Huong <kaka...@gmail.com
>>> In 9.3, it sounds replication_timeout is replaced by wal_sender_timeout.
>>> So if it is solved in 9.3 i think there is a way to terminate it.
>>> I hope it is fixed in 9.1 soon
>> Hmm. He said that,
>>> But in my environment the sender process is hang up (in several tens of minunites) if i turn off (by power off) Standby PC while *pg_basebackup* is excuting.
>> Does basebackup run only on 'replication connection' ?
>> As far as I saw base backup uses 'base backup' connection in addition
>> to 'streaming' connection. The former seems not under the control of
>> wal_sender_timeout or replication_timeout and easily blocked at
>> send(2) after sudden cut out of the network connection underneath.
>> Although the latter indeed is terminated by them.
> Yes, it's run via a walsender connection. The only "problem" is that it
> doesn't check for those timeouts. I am not sure it would be a good thing
> to do so to be honest. At least not using the same timeout as actual WAL
> sending, thats just has different characteristics.
> On the other hand, hanging around that long isn't nice either...
I tried max_wal_sender with 1, so when the walsender is hanging.
I can not run again pg_basebackup (or start the standby DB).
I'm increasing it to 2, so the seconds successfully. But i'm afraid
that when the third occures the hanging walsender in the first
is not yet terminated...
I think not, but is there a way to terminate hanging up but not
restart PostgreSQL server or kill walsender process?
(kill walsender process can caused a crash to DB server,
so i don't want to do it).
# i've also tried with pg_cancel_backend() but it did not work too.
>> Blocking in send(2) might could occur for async-rep connection but not
>> likely for sync-rep since it does not fill the buffers of libpq and
>> socket easilly.
> You just need larger transactions for it. A COPY or so ought to do it.
> Andres Freund