That was probably me. I'll look into it.


> On Jan 6, 2014, at 11:40 PM, Tom Lane <t...@sss.pgh.pa.us> wrote:
> 
> Bruce Momjian <br...@momjian.us> writes:
>>> On Sun, Dec 29, 2013 at 02:48:21AM -0500, Tom Lane wrote:
>>> 3. pg_upgrade ignores the fact that pg_resetxlog failed, and keeps going.
> 
>> Does pg_resetxlog return a non-zero exit status?  If so, pg_upgrade
>> should have caught that and exited.
> 
> It certainly does:
> 
>    if (errno)
>    {
>        fprintf(stderr, _("%s: could not read from directory \"%s\": %s\n"),
>                progname, XLOGDIR, strerror(errno));
>        exit(1);
>    }
> 
> The bug is that pg_upgrade appears to assume (in many places not just this
> one) that exec_prog() will abort if the called program fails, but *it
> doesn't*, contrary to the claim in its own header comment.  This is
> because pg_log(FATAL, ...) doesn't call exit().  pg_fatal() does, but
> that's not what's being called in the throw_error case.
> 
> I imagine that this used to work correctly and got broken by some
> ill-advised refactoring, but whatever the origin, it's 100% broken today.
> 
>            regards, tom lane
> 


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