Re: More time spending with "delete pending"

From: Daniel Gustafsson <daniel(at)yesql(dot)se>
To: Alexander Lakhin <exclusion(at)gmail(dot)com>, Michael Paquier <michael(at)paquier(dot)xyz>
Cc: pgsql-hackers <pgsql-hackers(at)postgresql(dot)org>, Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>, Justin Pryzby <pryzby(at)telsasoft(dot)com>
Subject: Re: More time spending with "delete pending"
Date: 2021-12-01 10:51:58
Message-ID: 158F92D1-7986-42BB-AF2A-2BE06841B827@yesql.se
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

> On 13 Jul 2021, at 20:00, Alexander Lakhin <exclusion(at)gmail(dot)com> wrote:
>
> 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:
>
> <ghffjapimnefdgac.png>
>
> 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.

Michael, have you had a chance to look at the updated patch here? I'm moving
this patch entry from Waiting on Author to Needs Review.

--
Daniel Gustafsson https://vmware.com/

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Daniel Gustafsson 2021-12-01 10:59:00 Re: Replication protocol doc fix
Previous Message Bharath Rupireddy 2021-12-01 10:50:52 should we document an example to set multiple libraries in shared_preload_libraries?