Re: several problems in pg_receivexlog

Alvaro Herrera <alvherre@commandprompt.com>

From: Alvaro Herrera <alvherre@commandprompt.com>
To: Fujii Masao <masao.fujii@gmail.com>
Cc: Magnus Hagander <magnus@hagander.net>, Pg Hackers <pgsql-hackers@postgresql.org>
Date: 2012-07-31T15:09:02Z
Lists: pgsql-hackers
Excerpts from Fujii Masao's message of mar jul 17 13:58:38 -0400 2012:

> >> You're right. If the error is detected, that function always returns false
> >> and the error message is emitted (but I think that current error message
> >> "pg_basebackup: child process exited with error 1" is confusing....),
> >> so it's OK. But if walsender in the server is terminated by SIGTERM,
> >> no error is detected and pg_basebackup background process gets out
> >> of the loop in ReceiveXlogStream() and returns true.
> >
> > Oh. Because the server does a graceful shutdown. D'uh, of course.
> >
> > Then yes, your suggested fix seems like a good one.
> 
> Attached patch adds the fix.
> 
> Also I found I had forgotten to set the file descriptor to -1 at the end of
> ReceiveXlogStream(), in previously-committed my patch. Attached patch
> fixes this problem.

This hasn't been committed yet AFAICT, and it probably needs a refresh
now after my changes to pg_basebackup.  Please update the patch.  Also,
if this is not in the Open Items list, please put it there so that we
don't forget it before the 9.2 release.

-- 
Álvaro Herrera <alvherre@commandprompt.com>
The PostgreSQL Company - Command Prompt, Inc.
PostgreSQL Replication, Consulting, Custom Development, 24x7 support

Commits

Same data as JSON: GET /api/v1/messages/:b64id/commits the thread's linked commits as JSON, with link sources. API reference →
  1. Make pg_recievexlog by default loop on connection failures