Bruce Momjian <pgman(at)candle(dot)pha(dot)pa(dot)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.
regards, tom lane