Re: Terminating pg_basebackup background streamer - Mailing list pgsql-hackers

From Magnus Hagander
Subject Re: Terminating pg_basebackup background streamer
Date
Msg-id CABUevEyb_-pH2wz7Xd+ZPvYqbf3xDhtUX4BifutVeiCMovpNzg@mail.gmail.com
Whole thread Raw
In response to Re: Terminating pg_basebackup background streamer  (Heikki Linnakangas <hlinnakangas@vmware.com>)
Responses Re: Terminating pg_basebackup background streamer  (Magnus Hagander <magnus@hagander.net>)
List pgsql-hackers
On Mon, Feb 10, 2014 at 7:29 PM, Heikki Linnakangas <hlinnakangas@vmware.com> wrote:
On 02/09/2014 02:17 PM, Magnus Hagander wrote:
If an error occurs in the foreground (backup) process of pg_basebackup, and
we exit in a controlled way, the background process (streaming xlog
process) would stay around and keep streaming.

This can happen for example if disk space runs out and there is very low
activity on the server. (If there is activity on the server, the background
streamer will also run out of disk space and exit)

Attached patch kills it off in disconnect_and_exit(), which seems like the
right thing to do to me.

Any objections to applying and backpatching that for the upcoming minor
releases?

Do you get a different error message with this patch than before? Is the new one better than the old one?

Previously you got double error messages - one from the foreground, and a second one from the background sometime in the future (whenever it eventually failed, and for whatever reason - so if it was out of disk space, it would complain about that once it got enough xlog for it to happen).

With the patch you just get the error message from the first process. The background process doesn't give an error on SIGTERM, it just exists.
 

--
 Magnus Hagander
 Me: http://www.hagander.net/
 Work: http://www.redpill-linpro.com/

pgsql-hackers by date:

Previous
From: Heikki Linnakangas
Date:
Subject: Re: Memory ordering issue in LWLockRelease, WakeupWaiters, WALInsertSlotRelease
Next
From: Peter Geoghegan
Date:
Subject: Re: INSERT...ON DUPLICATE KEY LOCK FOR UPDATE