Kris Jurka <books@ejurka.com> writes:
> On Fri, 24 Mar 2006, David Blasby wrote:
>> [OutOfMemory errors leave protocol stream in unknown state]
> Yeah, that's a problem alright. The easiest thing to do is to treat an
> out of memory error like an IOException and destroy the whole connection
> immediately. This isn't terribly friendly though and the vast majority
> of the errors are going to come from ReceiveTupleV3, so we could put some
> checks in that path that could get the protocol back into a known state.
> Adding checks around every allocation isn't going to be worth the effort.
We went through this same evolution with libpq awhile back, and pretty
much did what you say above: make sure that OOM during tuple collection
was handled in a friendly way. OOM at other places is likely to leave
things a bit broken. So far there've not been many complaints ...
regards, tom lane