Re: pg_basebackup creates a corrupt file for pg_stat_tmp and pg_replslot on a backup location - Mailing list pgsql-hackers

From Magnus Hagander
Subject Re: pg_basebackup creates a corrupt file for pg_stat_tmp and pg_replslot on a backup location
Date
Msg-id CABUevEzW3x-FW6jeuQkcgqakjN_hf+RhXXytMkk9rs5aeguWkg@mail.gmail.com
Whole thread Raw
In response to Re: pg_basebackup creates a corrupt file for pg_stat_tmp and pg_replslot on a backup location  (Alvaro Herrera <alvherre@2ndquadrant.com>)
List pgsql-hackers
On Thu, Apr 14, 2016 at 8:44 PM, Alvaro Herrera <alvherre@2ndquadrant.com> wrote:
Magnus Hagander wrote:
> On Thu, Apr 14, 2016 at 8:20 PM, Ashutosh Sharma <ashu.coek88@gmail.com>
> wrote:
>
> > I was just curious to know how would "*pg_basebackup*" behave if we do
> > create a symbolic link for directories other than pg_xlog/pg_tblspc.
> > However it is clearly mentioned in the documentation of pg_basebackup that
> > if a  Symbolic link for the directories other than pg_tblspc and pg_xlog is
> > created then it would be skipped. But, that is not the case for pg_replslot
> > and pg_stat_tmp. Is this not an issue. Should these directories not be
> > skipped. Please let me know your thoughts on this. Thanks.
>
> I agree that actually generating a corrupt tarfile is not good. But I think
> the correct fix is to actually generate an empty placeholder directory
> rather than skipping it - thereby making the backup look the same as it
> would if it was a correct directory where we just skipped the contents.

Hmm, if your server has replication slots and pg_basebackup doesn't copy
them, is the copy okay?

If pg_replslot is a directory and not a symlink, we skip the contents and create an empty directory. So it'd better be ok...


  It may be a waste to try to create all the
decoded data if there was any spillage, but perhaps it should at least
backup the state?  If this is excessive datadir knowledge in
pg_basebackup, perhaps it should throw an error if some of the critical
subdirs aren't copied?

The knowledge isn't actually in pg_basebackup, it's in basebackup.c in backend/replication.


--

pgsql-hackers by date:

Previous
From: Robert Haas
Date:
Subject: Re: Pglogical questions and problems
Next
From: Robert Haas
Date:
Subject: Re: pg_basebackup creates a corrupt file for pg_stat_tmp and pg_replslot on a backup location