Re: Re: BUG #5065: pg_ctl start fails as administrator, with "could not locate matching postgres executable"

Поиск
Список
Период
Сортировка
От Dave Page
Тема Re: Re: BUG #5065: pg_ctl start fails as administrator, with "could not locate matching postgres executable"
Дата
Msg-id 937d27e10910210452w474a8f52xc15fa3abe4c650a9@mail.gmail.com
обсуждение исходный текст
Ответ на Re: Re: BUG #5065: pg_ctl start fails as administrator, with "could not locate matching postgres executable"  (Dave Page <dpage@pgadmin.org>)
Ответы Re: Re: BUG #5065: pg_ctl start fails as administrator, with "could not locate matching postgres executable"  (Tom Lane <tgl@sss.pgh.pa.us>)
Список pgsql-bugs
On Wed, Oct 21, 2009 at 8:45 AM, Dave Page <dpage@pgadmin.org> wrote:
> On Tue, Oct 20, 2009 at 5:45 PM, Tom Lane <tgl@sss.pgh.pa.us> wrote:
>
>> Seems like it would be worth the trouble to identify exactly what the
>> critical difference is.
>
> Given Jesse's description of the systems he's seen this on, I suspect
> we'll be very lucky if we pin that down, unless it is something as
> simple as win2k3+administrator+command line (which I'll try to test
> shortly) - but that doesn't tally with the occasional cases of this I
> still hear about (usually from our poker-playing users) who are using
> the installer and Vista or XP as a general rule.

I tested in 2k3, and was surprised to see that whilst initdb worked
fine in 8.4.1 (that's where the problem traditionally shows up),
starting the server failed:

C:\pgsql>bin\pg_ctl -D data start
server starting

C:\pgsql>FATAL:  XX000: C:/pgsql/bin/postgres.exe: could not locate
matching postgres executable
LOCATION:  getInstallationPaths, .\src\backend\postmaster\postmaster.c:1070

Jesse's patched version works as it should. This makes it clear that
the re-factoring of the way the security token is created and the
process started is not the really important part of this patch - this
is:

-    if (!AddAccessAllowedAce(pacl, ACL_REVISION, GENERIC_ALL, psidUser))
-    {
+    if (!AddAccessAllowedAceEx(pacl, ACL_REVISION, OBJECT_INHERIT_ACE,
GENERIC_ALL, psidUser))
+    {

This function call is adding the new access control entry to the DACL,
and in Jesse's modified version it's specifying that the ACE should be
inheritable.

The other refactoring is still important however - without it, I still
see the error. I would guess that you cannot add an inheritable ACE
once the process has been created, but I cannot say for certain.

--
Dave Page
EnterpriseDB UK: http://www.enterprisedb.com
PGDay.EU 2009 Conference: http://2009.pgday.eu/start

В списке pgsql-bugs по дате отправления:

Предыдущее
От: Andres Freund
Дата:
Сообщение: Re: BUG #5129: LIMIT not correct.
Следующее
От: taktos
Дата:
Сообщение: Re: BUG #5127: AbstractJdbc2Connection#doRollback should throws Exception if connection is closed