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