Uninformative messages from pg_ctl
These messages from pg_ctl are not useful
$ pg_ctl -D nonexistent stop
pg_ctl: PID file "nonexistent/postmaster.pid" does not exist
Is server running?
The message should say
pg_ctl: Data Directory "nonexistent" does not exist
$ pg_ctl -D nonexistent start
postgres cannot access the server configuration file
"/usr/local/pgsql/nonexistent/postgresql.conf": No such file or
directory
server starting
The message should say
pg_ctl: Data Directory "nonexistent" does not exist
and should not say "server starting" at all.
Any objections to changing them?
--
Simon Riggs
2ndQuadrant http://www.2ndQuadrant.com
Am Dienstag, 9. Oktober 2007 schrieb Simon Riggs:
These messages from pg_ctl are not useful
$ pg_ctl -D nonexistent stop
pg_ctl: PID file "nonexistent/postmaster.pid" does not exist
Is server running?The message should say
pg_ctl: Data Directory "nonexistent" does not exist
Well, this objection could apply to any place where a file is being opened.
I'm curious how you plan to sort out the difference, considering that open()
simply returns ENOENT in both cases.
--
Peter Eisentraut
http://developer.postgresql.org/~petere/
On Tue, Oct 09, 2007 at 01:09:19PM +0200, Peter Eisentraut wrote:
Am Dienstag, 9. Oktober 2007 schrieb Simon Riggs:
These messages from pg_ctl are not useful
$ pg_ctl -D nonexistent stop
pg_ctl: PID file "nonexistent/postmaster.pid" does not exist
Is server running?The message should say
pg_ctl: Data Directory "nonexistent" does not existWell, this objection could apply to any place where a file is being opened.
I'm curious how you plan to sort out the difference, considering that open()
simply returns ENOENT in both cases.
You'd do opendir() on the directory part fisrt, I assume.
A question I had about it is, where are we wrt translations? When do we
plan string freeze?
//Magnus
On Tue, 2007-10-09 at 13:20 +0200, Magnus Hagander wrote:
On Tue, Oct 09, 2007 at 01:09:19PM +0200, Peter Eisentraut wrote:
Am Dienstag, 9. Oktober 2007 schrieb Simon Riggs:
These messages from pg_ctl are not useful
$ pg_ctl -D nonexistent stop
pg_ctl: PID file "nonexistent/postmaster.pid" does not exist
Is server running?The message should say
pg_ctl: Data Directory "nonexistent" does not existWell, this objection could apply to any place where a file is being opened.
I'm curious how you plan to sort out the difference, considering that open()
simply returns ENOENT in both cases.You'd do opendir() on the directory part fisrt, I assume.
Yes, so we catch the real error.
A question I had about it is, where are we wrt translations? When do we
plan string freeze?
Not one day after Beta1, I presume.
We would keep the "pid does not exist" error because it still might be
true that we have a data directory, but no pid file.
--
Simon Riggs
2ndQuadrant http://www.2ndQuadrant.com
Am Dienstag, 9. Oktober 2007 schrieb Simon Riggs:
On Tue, 2007-10-09 at 13:20 +0200, Magnus Hagander wrote:
On Tue, Oct 09, 2007 at 01:09:19PM +0200, Peter Eisentraut wrote:
Well, this objection could apply to any place where a file is being
opened. I'm curious how you plan to sort out the difference,
considering that open() simply returns ENOENT in both cases.You'd do opendir() on the directory part fisrt, I assume.
Yes, so we catch the real error.
Note that opendir() requires different permissions than reading or writing a
file in that directory. So you might in fact be catching the wrong error.
stat() might work better, but I'm not sure.
You would also have to cope with the directory structure changing as you
traverse it.
Also consider the effort required to slice apart directory names in a portable
way and iterate and catch all these problems. This could at best be used in
a limited number of places where pilot errors are common.
I believe, however, that this approach is wrong. The "real error", as you put
it, is the one reported by the kernel -- by definition. Everything else is
at best a "hint".
--
Peter Eisentraut
http://developer.postgresql.org/~petere/
On Tue, 2007-10-09 at 14:25 +0200, Peter Eisentraut wrote:
Am Dienstag, 9. Oktober 2007 schrieb Simon Riggs:
On Tue, 2007-10-09 at 13:20 +0200, Magnus Hagander wrote:
On Tue, Oct 09, 2007 at 01:09:19PM +0200, Peter Eisentraut wrote:
Well, this objection could apply to any place where a file is being
opened. I'm curious how you plan to sort out the difference,
considering that open() simply returns ENOENT in both cases.You'd do opendir() on the directory part fisrt, I assume.
Yes, so we catch the real error.
Note that opendir() requires different permissions than reading or writing a
file in that directory. So you might in fact be catching the wrong error.
stat() might work better, but I'm not sure.
Yeh, I presumed he was speaking Windows
You would also have to cope with the directory structure changing as you
traverse it.
No directory. pid file is in data directory root
We'll still fail with the old error if anything changes
Also consider the effort required to slice apart directory names in a portable
way and iterate and catch all these problems. This could at best be used in
a limited number of places where pilot errors are common.
Nothing to do. The -D option supplies the data dir name, we add the pid
file name on top, so no munging required.
I believe, however, that this approach is wrong. The "real error", as you put
it, is the one reported by the kernel -- by definition. Everything else is
at best a "hint".
--
Simon Riggs
2ndQuadrant http://www.2ndQuadrant.com
On Tue, 2007-10-09 at 14:25 +0200, Peter Eisentraut wrote:
I believe, however, that this approach is wrong. The "real error", as you put
it, is the one reported by the kernel -- by definition. Everything else is
at best a "hint".
Are you objecting to making the wording of the hint/error clearer?
--
Simon Riggs
2ndQuadrant http://www.2ndQuadrant.com
Am Dienstag, 9. Oktober 2007 schrieb Simon Riggs:
On Tue, 2007-10-09 at 14:25 +0200, Peter Eisentraut wrote:
I believe, however, that this approach is wrong. The "real error", as
you put it, is the one reported by the kernel -- by definition.
Everything else is at best a "hint".Are you objecting to making the wording of the hint/error clearer?
Not at all. I'm just trying to point out that it's not quite as obvious as it
may seem. Let's see a patch.
--
Peter Eisentraut
http://developer.postgresql.org/~petere/