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

Amit Kapila <amit.kapila16@gmail.com>

From: Amit Kapila <amit.kapila16@gmail.com>
To: harukat@sraoss.co.jp
Cc: PostgreSQL Bugs <pgsql-bugs@postgresql.org>
Date: 2016-07-12T14:09:31Z
Lists: pgsql-bugs
On Tue, Jul 12, 2016 at 2:02 PM,  <harukat@sraoss.co.jp> wrote:
> The following bug has been logged on the website:
>
> Bug reference:      14243
> Logged by:          TAKATSUKA Haruka
> Email address:      harukat@sraoss.co.jp
> PostgreSQL version: 9.6beta2
> Operating system:   Windows
> Description:
>
>
> pg_basebackup sometimes failed on Windows by "Permission denied".
> This occured in PostgreSQL 9.1.x and I reproduced it in 9.6beta2.
>
> C:\>pg_basebackup.exe -h localhost -U postgres
>  -D C:\dat\96datpg_basebackup: could not get backup header:
>  ERROR:  could not stat file or directory "./base/16393/16444":
>  Permission denied
>
> C:\Program Files\PostgreSQL\9.6\data\base\16393>dir /q 16444
>
>  C:\Program Files\PostgreSQL\9.6\data\base\16393 directory
>
>  2016/07/12  15:56             0 ...        16444
>
> Dir command says the file 16444's owner is '...'.
> It means file 16444 is in STATUS_DELETE_PENDING.
> The other processes cannot open it, so it can
> cause pg_basebackup to fail.
>
> I think pg_basebackup should ignore files which is in
> STATUS_DELETE_PENDING. But I cannot yet find an easy
> method to realize it.
>

pg_basebackup tries to backup all the files in data directory and
tablespaces.  Refer Notes section of pg_basebackup documentation.  I
think if it decides to skip a file with some bad status, it might also
lead to a corrupt backup.  I wonder how the file has such a status?
>From the name, it looks to be a valid database file.

[1] - https://www.postgresql.org/docs/devel/static/app-pgbasebackup.html

-- 
With Regards,
Amit Kapila.
EnterpriseDB: http://www.enterprisedb.com