Re: 8.3 .4 + Vista + MingW + initdb = ACCESS_DENIED

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: Andrew Chernow <ac(at)esilo(dot)com>
Cc: Andrew Dunstan <andrew(at)dunslane(dot)net>, Dave Page <dpage(at)pgadmin(dot)org>, Magnus Hagander <magnus(at)hagander(dot)net>, Zeugswetter Andreas OSB sIT <Andreas(dot)Zeugswetter(at)s-itsolutions(dot)at>, Charlie Savage <cfis(at)savagexi(dot)com>, "pgsql-hackers(at)postgresql(dot)org" <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: 8.3 .4 + Vista + MingW + initdb = ACCESS_DENIED
Date: 2008-10-15 17:33:40
Message-ID: 24197.1224092020@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Andrew Chernow <ac(at)esilo(dot)com> writes:
> Tom Lane wrote:
>> Does fork/exec preserve lock ownership on Windows?

> Not to my knowledge. On windows, there is only CreateProcess
> (http://msdn.microsoft.com/en-us/library/ms682425.aspx). That doesn't
> resemble the behavior of fork or exec at all.

Hmm. Now that you mention it, didn't we solve a similar problem by
exploiting the behavior where CreateProcess creates a process but
doesn't start it running? I'm envisioning

* Create child process in suspended state
* Assign it ownership of a lock (can we do that?)
* Set it running

If the postmaster crashes between steps 1 and 2, then the zombie process
doesn't hold a lock, but it will never do anything so it doesn't matter.

OTOH, if the postmaster crashes between steps 2 and 3, there's probably
no way to restart your database except to reboot ...

regards, tom lane

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Magnus Hagander 2008-10-15 17:36:07 Re: 8.3 .4 + Vista + MingW + initdb = ACCESS_DENIED
Previous Message Tom Lane 2008-10-15 17:26:31 Re: 8.3 .4 + Vista + MingW + initdb = ACCESS_DENIED