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