On October 27, 1997 I wrote:
>
> Hi,
>
> while playing around with PL/Tcl I encountered a general
> memory allocation problem. Every transaction abort via
> elog(WARN, ...) leaves some allocated memory laying around.
>
> Just do some "select * from non_existing_table;" and you'll
> see the backend growing.
>
> One place where this happens is tcop. The querytree isn't
> freed on the restart. But there must be other places too
> since I've hacked out that one and the backend is still
> growing.
>
> This all didn't matter until we have triggers and constraints
> now. One normal action of a trigger or constraint is to fire
> a transaction abort. Thus, a really long running database
> backend can grow and grow.
>
> Please add this to TODO as I don't have the time right now to
> dive into.
Never got onto the TODO :-(
It still happens. Seems like approx 1K isn't freed per elog(ERROR).
Jan
--
#======================================================================#
# It's easier to get forgiveness for being wrong than for being right. #
# Let's break this rule - forgive me. #
#======================================== jwieck@debis.com (Jan Wieck) #