Re: 8.3 .4 + Vista + MingW + initdb = ACCESS_DENIED - Mailing list pgsql-hackers

From Andrew Dunstan
Subject Re: 8.3 .4 + Vista + MingW + initdb = ACCESS_DENIED
Date
Msg-id 48F61455.1020009@dunslane.net
Whole thread Raw
In response to Re: 8.3 .4 + Vista + MingW + initdb = ACCESS_DENIED  (Andrew Dunstan <andrew@dunslane.net>)
Responses Re: 8.3 .4 + Vista + MingW + initdb = ACCESS_DENIED
Re: 8.3 .4 + Vista + MingW + initdb = ACCESS_DENIED
List pgsql-hackers

Andrew Dunstan wrote:
>
>
> Dave Page wrote:
>>> The reason it should be in the Global namespace is that shmem is one 
>>> part of
>>> detecting an existing postmaster. Especially in situations where the 
>>> db is started
>>> by hand, the protection against duplicate startup is important.
>>>     
>>
>> Yeah, as Magnus reminded me.
>>   
>
> IMNSHO we need to find a different exclusion mechanism that isn't as 
> cumbersome and surrounded by caveats as this one.
>
> The buildfarm also uses an exclusion mechanism, based on Perl's 
> flock(), and it's a simple one line call. AFAIK that works just fine 
> on Windows (I will double check). If so, we should possibly look at 
> how Perl does that on Windows.

I have verified that it does indeed work. Underneath the hood it uses 
the native call LockFileEx() see win32io.c in Perl source. I suggest we 
should switch from this flaky use of Global namespace to having the 
postmaster acquire an explicit lock on a file in the datadir.

cheers

andrew





pgsql-hackers by date:

Previous
From: Tom Lane
Date:
Subject: Re: Is autovacuum too noisy about orphan temp tables?
Next
From: Tom Lane
Date:
Subject: Re: Annoying error messages in _dosmaperr