pgsql: Attempt to handle pending-delete files on Windows

From: Magnus Hagander <magnus(at)hagander(dot)net>
To: pgsql-committers(at)postgresql(dot)org
Subject: pgsql: Attempt to handle pending-delete files on Windows
Date: 2017-01-04 09:52:52
Message-ID: E1cOiFY-0003TV-2u@gemulon.postgresql.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-committers

Attempt to handle pending-delete files on Windows

These files are deleted but not yet gone from the filesystem. Operations
on them will return ERROR_DELETE_PENDING.

With this we start treating that as ENOENT, meaning files does not
exist (which is the state it will soon reach). This should be safe in
every case except when we try to recreate a file with exactly the same
name. This is an operation that PostgreSQL does very seldom, so
hopefully that won't happen much -- and even if it does, this treatment
should be no worse than treating it as an unhandled error.

We've been un able to reproduce the bug reliably, so pushing this to
master to get buildfarm coverage and other testing. Once it's proven to
be stable, it should be considered for backpatching.

Discussion: https://postgr.es/m/20160712083220.1426.58667%40wrigleys.postgresql.org

Patch by me and Michael Paquier

Branch
------
master

Details
-------
http://git.postgresql.org/pg/commitdiff/9951741bbeb3ec37ca50e9ce3df1808c931ff6a6

Modified Files
--------------
src/port/dirmod.c | 15 +++++++++++++++
src/port/win32error.c | 3 +++
2 files changed, 18 insertions(+)

Browse pgsql-committers by date

  From Date Subject
Next Message Peter Eisentraut 2017-01-04 13:52:59 pgsql: Better fix for sequence access in hot standby test
Previous Message Magnus Hagander 2017-01-04 09:42:00 pgsql: Make wal streaming the default mode for pg_basebackup