Re: More time spending with "delete pending" - Mailing list pgsql-hackers

From Alexander Lakhin
Subject Re: More time spending with "delete pending"
Date
Msg-id 62c17068-a608-800f-295e-9d2cca5decf7@gmail.com
Whole thread Raw
In response to Re: More time spending with "delete pending"  (Michael Paquier <michael@paquier.xyz>)
Responses Re: More time spending with "delete pending"  (Daniel Gustafsson <daniel@yesql.se>)
List pgsql-hackers
Hello Michael,
12.07.2021 08:52, Michael Paquier wrote:
On Mon, Jul 12, 2021 at 02:09:41PM +0900, Michael Paquier wrote:
And fairywren, that uses MinGW, is unhappy:
https://buildfarm.postgresql.org/cgi-bin/show_log.pl?nm=fairywren&dt=2021-07-12%2004%3A47%3A13
Looking at it now.
I am not sure what to do here to cool down MinGW, so the patch has
been reverted for now:
- Plain stat() is not enough to do a proper detection of the files
pending for deletion on MSVC, so reverting only the part with
microsoft_native_stat() is not going to help.
- We are going to need an evaluation of the stat() implementation in
MinGW and check if is it possible to rely on it more.  If yes, we
could get away with more tweaks based on __MINGW32__/__MINGW64__.
I've managed to adapt open/win32stat for MinGW by preventing stat overriding at the implementation level. Thus, the code that calls stat() will use the overridden struct/function(s), but inside of open/win32_stat we could access original stat and reference to __pgstat64 where we want to use our.
Tested on MSVC, MinGW64 and MinGW32 — the fixed code compiles everywhere.

But when using perl from msys (not ActivePerl) while testing I've got the same test failure due to another error condition:



In this case CreateFile() fails with ERROR_SHARING_VIOLATION (not ERROR_ACCESS_DENIED) and it leads to the same "Permission denied" error. This condition is handled in the pgwin32_open() but not in _pgstat64() yet.

I think I should develop another test for MSVC environment that will demonstrate a such failure too.
But as it's not related to the DELETE_PENDING state, I wonder whether this should be fixed in a separate patch.

Best regards,
Alexander
Attachment

pgsql-hackers by date:

Previous
From: Tom Lane
Date:
Subject: Re: proposal - psql - use pager for \watch command
Next
From: Ranier Vilela
Date:
Subject: Re: printf %s with NULL pointer (was Re: BUG #17098: Assert failed on composing an error message when adding a type to an extension being dropped)