BUG #4694: uppercase path cause postgres can't start

Lists: pgsql-bugs
From: "trainee" <trainee12(at)163(dot)com>
To: pgsql-bugs(at)postgresql(dot)org
Subject: BUG #4694: uppercase path cause postgres can't start
Date: 2009-03-05 08:48:31
Message-ID: 200903050848.n258mVgm046178@wwwmaster.postgresql.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-bugs


The following bug has been logged online:

Bug reference: 4694
Logged by: trainee
Email address: trainee12(at)163(dot)com
PostgreSQL version: 8.3.6
Operating system: windows xp
Description: uppercase path cause postgres can't start
Details:

I download zip binaray 8.3.6
extract into e:\postgres

set system variables "path" add "E:\POSTGRES\PGSQL\BIN;" --uppercase

cmd;

pg_ctl register -N postgres -D "e:\postgres\pgdata"

when I start server , failure

error msg is :

LOG: could not open directory "/share/timezone": No such file or directory
FATAL: could not select a suitable default timezone
DETAIL: It appears that your GMT time zone uses leap seconds. PostgreSQL
does not support leap seconds.

if I change system variables "path" into lowercase, success.

why?


From: Magnus Hagander <magnus(at)hagander(dot)net>
To: trainee <trainee12(at)163(dot)com>
Cc: pgsql-bugs(at)postgresql(dot)org
Subject: Re: BUG #4694: uppercase path cause postgres can't start
Date: 2009-04-03 13:40:16
Message-ID: 49D611C0.3080205@hagander.net
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-bugs

trainee wrote:
> The following bug has been logged online:
>
> Bug reference: 4694
> Logged by: trainee
> Email address: trainee12(at)163(dot)com
> PostgreSQL version: 8.3.6
> Operating system: windows xp
> Description: uppercase path cause postgres can't start
> Details:
>
> I download zip binaray 8.3.6
> extract into e:\postgres
>
> set system variables "path" add "E:\POSTGRES\PGSQL\BIN;" --uppercase
>
> cmd;
>
> pg_ctl register -N postgres -D "e:\postgres\pgdata"
>
> when I start server , failure
>
> error msg is :
>
> LOG: could not open directory "/share/timezone": No such file or directory
> FATAL: could not select a suitable default timezone
> DETAIL: It appears that your GMT time zone uses leap seconds. PostgreSQL
> does not support leap seconds.
>
> if I change system variables "path" into lowercase, success.
>
> why?

The path has to have the same case as the directory name in the
filesystem. This is due to the fact that NTFS is case-insensitive but
case-preserving.

The recommendation is to always include the full path to the pg_ctl
command when you register the service.

That said, I have applied a patch that makes the check that fails case
insensitive, which should fix the most common cases of this happening.
It will be included in the next version (in both 8.2/8.3 and in the
upcoming 8.4)

//Magnus