Re: Uninformative messages from pg_ctl

From: Peter Eisentraut <peter_e(at)gmx(dot)net>
To: Simon Riggs <simon(at)2ndquadrant(dot)com>
Cc: Magnus Hagander <magnus(at)hagander(dot)net>, pgsql-hackers(at)postgresql(dot)org
Subject: Re: Uninformative messages from pg_ctl
Date: 2007-10-09 12:25:45
Message-ID: 200710091425.45803.peter_e@gmx.net
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

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/

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Pavel Stehule 2007-10-09 12:28:24 some points for FAQ
Previous Message Simon Riggs 2007-10-09 11:58:28 Re: Uninformative messages from pg_ctl