]> granicus.if.org Git - postgresql/commit
Preserve caller's memory context in ProcessCompletedNotifies().
authorTom Lane <tgl@sss.pgh.pa.us>
Fri, 27 May 2011 16:10:32 +0000 (12:10 -0400)
committerTom Lane <tgl@sss.pgh.pa.us>
Fri, 27 May 2011 16:10:58 +0000 (12:10 -0400)
commit722548e4309c28631ada292fe6cad04ae8f9c151
tree16f16d9edf89602c03eab24430f8c49787064c80
parent0bd7305ffb16b238dea79d5f98f88c745fe21db8
Preserve caller's memory context in ProcessCompletedNotifies().

This is necessary to avoid long-term memory leakage, because the main loop
in PostgresMain expects to be executing in MessageContext, and hence is a
bit sloppy about freeing stuff that is only needed for the duration of
processing the current client message.  The known case of an actual leak
is when encoding conversion has to be done on the incoming command string,
but there might be others.  Per report from Per-Olov Esgard.

Back-patch to 9.0, where the bug was introduced by the LISTEN/NOTIFY
rewrite.
src/backend/commands/async.c