Re: [HACKERS] Memory not freed at WARN

Started by Nonamealmost 28 years ago2 messages
#1Noname
jwieck@debis.com

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) #

#2Bruce Momjian
maillist@candle.pha.pa.us
In reply to: Noname (#1)

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).

Added:

* elog() does not free all its memory(Jan)

-- 
Bruce Momjian                          |  830 Blythe Avenue
maillist@candle.pha.pa.us              |  Drexel Hill, Pennsylvania 19026
  +  If your life is a hard drive,     |  (610) 353-9879(w)
  +  Christ can be your backup.        |  (610) 853-3000(h)