Skip site navigation (1) Skip section navigation (2)

pgsql: On Windows, when a file is deleted and another process still has

From: heikki(at)postgresql(dot)org (Heikki Linnakangas)
To: pgsql-committers(at)postgresql(dot)org
Subject: pgsql: On Windows, when a file is deleted and another process still has
Date: 2009-09-10 09:42:11
Message-ID: 20090910094211.166C5753FB7@cvs.postgresql.org (view raw or flat)
Thread:
Lists: pgsql-committerspgsql-hackers
Log Message:
-----------
On Windows, when a file is deleted and another process still has an open
file handle on it, the file goes into "pending deletion" state where it
still shows up in directory listing, but isn't accessible otherwise. That
confuses RemoveOldXLogFiles(), making it think that the file hasn't been
archived yet, while it actually was, and it was deleted along with the .done
file.

Fix that by renaming the file with ".deleted" extension before deleting it.
Also check the return value of rename() and unlink(), so that if the removal
fails for any reason (e.g another process is holding the file locked), we
don't delete the .done file until the WAL file is really gone.

Backpatch to 8.2, which is the oldest version supported on Windows.

Modified Files:
--------------
    pgsql/src/backend/access/transam:
        xlog.c (r1.351 -> r1.352)
        (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/access/transam/xlog.c?r1=1.351&r2=1.352)

Responses

pgsql-hackers by date

Next:From: Peter EisentrautDate: 2009-09-10 10:43:38
Subject: Re: RfD: more powerful "any" types
Previous:From: Dimitri FontaineDate: 2009-09-10 09:24:52
Subject: Re: Ragged CSV import

pgsql-committers by date

Next:From: Heikki LinnakangasDate: 2009-09-10 09:42:29
Subject: pgsql: On Windows, when a file is deleted and another process still has
Previous:From: Peter EisentrautDate: 2009-09-09 19:00:09
Subject: pgsql: Fix/improve bytea and boolean support in PL/Python Before,

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group