Re: BUG #14243: pg_basebackup failes by a STATUS_DELETE_PENDING file

Magnus Hagander <magnus@hagander.net>

From: Magnus Hagander <magnus@hagander.net>
To: Andres Freund <andres@anarazel.de>
Cc: Tom Lane <tgl@sss.pgh.pa.us>, Alvaro Herrera <alvherre@2ndquadrant.com>, Amit Kapila <amit.kapila16@gmail.com>, TAKATSUKA Haruka <harukat@sraoss.co.jp>, PostgreSQL Bugs <pgsql-bugs@postgresql.org>
Date: 2016-08-17T10:19:31Z
Lists: pgsql-bugs
On Tue, Aug 16, 2016 at 9:54 PM, Andres Freund <andres@anarazel.de> wrote:

> On 2016-07-12 19:05:16 -0400, Tom Lane wrote:
> > Alvaro Herrera <alvherre@2ndquadrant.com> writes:
> > >> On Tue, Jul 12, 2016 at 2:02 PM,  <harukat@sraoss.co.jp> wrote:
> > >>> It means file 16444 is in STATUS_DELETE_PENDING.
> >
> > > This file is probably being deleted by a checkpoint after some user
> > > transaction marked it for removal (either because the relation was
> > > dropped, or because it got a new relfilenode).  I would say that the
> > > file is not needed for the backup after all and pg_basebackup should
> > > just ignore it.
> >
> > Yeah.  The question is how do we distinguish that from cases that
> > are less benign.
>
> One approach would be to rename the file into something indicating it's
> being deleted, before actually deleting it.
>
>
That would be an option (IIRC if you open with FILE_SHARE_DELETE, it can
also be renamed). But if we can track the delete when we try to open it and
just treat it as "file does not exist", that seems cleaner.

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