Tom Lane wrote:
> Bruce Momjian <pgman@candle.pha.pa.us> writes:
> > As part of the training class I did, some people tested what happens
> > when the client allocates tons of memory to store a result and aborts.
>
> > What we found was that though elog was properly called:
>
> > elog(COMMERROR, "pq_recvbuf: recv() failed: %m");
>
> > (I think that was the message.) the backend did not exit and kept
> > eating CPU. I think the problem is that the elog code only exits on
> > ERROR, not COMMERROR. Is there some way to fix this?
>
> There's been talk of setting the QueryCancel flag after detecting a
> client communication failure ... but no one has ever done the legwork
> to see if that works nicely, or what downsides it might have.
Why is COMMERROR not doing the longjump like ERROR?
-- Bruce Momjian | http://candle.pha.pa.us pgman@candle.pha.pa.us | (610)
359-1001+ If your life is a hard drive, | 13 Roberts Road + Christ can be your backup. | Newtown Square,
Pennsylvania19073