From: | Bruce Momjian <maillist(at)candle(dot)pha(dot)pa(dot)us> |
---|---|
To: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
Cc: | Massimo Dal Zotto <dz(at)cs(dot)unitn(dot)it>, PostgreSQL Hackers <hackers(at)postgreSQL(dot)org> |
Subject: | Re: [HACKERS] ERROR: infinite recursion in proc_exit |
Date: | 1999-11-06 20:48:05 |
Message-ID: | 199911062048.PAA08634@candle.pha.pa.us |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
> Bruce Momjian <maillist(at)candle(dot)pha(dot)pa(dot)us> writes:
> > /* ----------------
> > * if proc_exit_inprocess > 1, then it means that we
> > * are being invoked from within an on_exit() handler
> > * and so we return immediately to avoid recursion.
> > * ----------------
> > */
> > if (proc_exit_inprogress > 1)
> > return;
>
> No, no, no, noooo!!!
>
> proc_exit MUST NOT RETURN. EVER, UNDER ANY CIRCUMSTANCES.
>
> If it does, that means that elog(STOP) can return under some
> circumstances. The callers of elog() are not expecting that,
> and they are likely to screw things up even worse if elog returns
> control unexpectedly.
>
> AFAICS, this set of problems cannot be fixed by localized patching in
> proc_exit. We have to globally change the way in which errors are
> processed after proc_exit has begun execution.
>
Oh, well. I tried. Code is better than it used to be at least.
--
Bruce Momjian | http://www.op.net/~candle
maillist(at)candle(dot)pha(dot)pa(dot)us | (610) 853-3000
+ If your life is a hard drive, | 830 Blythe Avenue
+ Christ can be your backup. | Drexel Hill, Pennsylvania 19026
From | Date | Subject | |
---|---|---|---|
Next Message | Bruce Momjian | 1999-11-06 20:51:36 | Re: [HACKERS] Arrays broken on temp tables |
Previous Message | Bruce Momjian | 1999-11-06 20:46:56 | Re: [HACKERS] New psql compile problem. |