Hi All,

I have found a case that PostgreSQL Service does not start.
When it happens, the following error appears.

 "is not a valid Win32 application"

This failure occurs when the following conditions are true.

1. There is "postgres.exe" in any directory that contains a space,
   such as "Program Files".

   e.g.)
   C:\Program Files\PostgreSQL\bin\postgres.exe

2. A file using the first white space-delimited 
   tokens of that directory as the file name exists,
   and there is it in the same hierarchy.

   e.g.)
   C:\Program     //file

"pg_ctl.exe" as PostgreSQL Service creates a postgres 
process using an absolute path which indicates the 
location of "postgres.exe",but the path is not enclosed 
in quotation.

Therefore,if the above-mentioned conditions are true, 
CreateProcessAsUser(a Windows Function called by pg_ctl.exe) 
tries to create a process using the other file such 
as "Program", so the service fails to start.

Accordingly, I think that the command path should be 
enclosed in quotation.

I created a patch to fix this failure,
So could anyone confirm?

Regards,

Naoya

---
Naoya Anzai
Engineering Department
NEC Soft, Ltd.
E-Mail: anzai-na...@mxu.nes.nec.co.jp
---

Attachment: pg_ctl.c.patch
Description: pg_ctl.c.patch

-- 
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