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