BUG #14243: pg_basebackup failes by a STATUS_DELETE_PENDING file

TAKATSUKA Haruka <harukat@sraoss.co.jp>

From: harukat@sraoss.co.jp
To: pgsql-bugs@postgresql.org
Date: 2016-07-12T08:32:20Z
Lists: pgsql-bugs
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.