Re: rmtree() failure on Windows
| От | Andrew Dunstan |
|---|---|
| Тема | Re: rmtree() failure on Windows |
| Дата | |
| Msg-id | 417FC1E8.4010102@dunslane.net обсуждение исходный текст |
| Ответ на | Re: rmtree() failure on Windows (Tom Lane <tgl@sss.pgh.pa.us>) |
| Ответы |
Re: rmtree() failure on Windows
|
| Список | pgsql-hackers |
Tom Lane wrote: >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. > > Looks that way to me too. >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 ... > > > > Works for me. If someone gives me a patch I'll be happy to test it. I did wonder if there should be a call that instead of forcing a flush could tell bgwriter just to forget about the file(s) because we're discarding them. But that was just idle speculation - I haven't looked at bgwriter at all. cheers andrew
В списке pgsql-hackers по дате отправления: