Re: rmtree() failure on Windows - Mailing list pgsql-hackers

From Tom Lane
Subject Re: rmtree() failure on Windows
Date
Msg-id 20451.1098890580@sss.pgh.pa.us
Whole thread Raw
In response to Re: rmtree() failure on Windows  (Andrew Dunstan <andrew@dunslane.net>)
Responses Re: rmtree() failure on Windows
List pgsql-hackers
Andrew Dunstan <andrew@dunslane.net> writes:
> Before I tried anything like that I tried one more thing. I disabled the 
> background writer and the problem stopped. So now we know the "culprit".

Okay.  So what that says is that win32_open's claim to allow unlinking
an open file is a lie; or at least, it does not work the way the
equivalent facility on Unix does.  It sounds to me like Windows is
simply marking the open file as to be deleted on last close --- the
directory entry remains present and so the directory can't be dropped
either.

One relatively low-impact workaround would be to force a checkpoint
(on Windows only) during DROP DATABASE, just before we actually fire
the rmtree() operation.  The bgwriter is already coded to close all its
open files after a checkpoint ...
        regards, tom lane


pgsql-hackers by date:

Previous
From: "Zeugswetter Andreas DAZ SD"
Date:
Subject: Re: rmtree() failure on Windows
Next
From: Andrew Dunstan
Date:
Subject: Re: rmtree() failure on Windows