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




--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

Reply via email to