Re: pg_basebackup creates a corrupt file for pg_stat_tmp and pg_replslot on a backup location

From: Magnus Hagander <magnus(at)hagander(dot)net>
To: Alvaro Herrera <alvherre(at)2ndquadrant(dot)com>
Cc: Ashutosh Sharma <ashu(dot)coek88(at)gmail(dot)com>, Andres Freund <andres(at)anarazel(dot)de>, pgsql-hackers <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: pg_basebackup creates a corrupt file for pg_stat_tmp and pg_replslot on a backup location
Date: 2016-04-14 18:48:18
Message-ID: CABUevEzW3x-FW6jeuQkcgqakjN_hf+RhXXytMkk9rs5aeguWkg@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On Thu, Apr 14, 2016 at 8:44 PM, Alvaro Herrera <alvherre(at)2ndquadrant(dot)com>
wrote:

> Magnus Hagander wrote:
> > On Thu, Apr 14, 2016 at 8:20 PM, Ashutosh Sharma <ashu(dot)coek88(at)gmail(dot)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.

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

In response to

Browse pgsql-hackers by date

  From Date Subject
Next Message Robert Haas 2016-04-14 18:55:37 Re: pg_basebackup creates a corrupt file for pg_stat_tmp and pg_replslot on a backup location
Previous Message Robert Haas 2016-04-14 18:46:58 Re: Pglogical questions and problems