Re: Memory leaks - Mailing list pgsql-hackers

From Tom Lane
Subject Re: Memory leaks
Date
Msg-id 25790.1035324563@sss.pgh.pa.us
Whole thread Raw
In response to Memory leaks  (Greg Copeland <greg@CopelandConsulting.Net>)
Responses Re: Memory leaks  (Hannu Krosing <hannu@tm.ee>)
Re: Memory leaks  (Greg Copeland <greg@CopelandConsulting.Net>)
List pgsql-hackers
Greg Copeland <greg@CopelandConsulting.Net> writes:
> I've started playing a little with Postgres to determine if there were
> memory leaks running around.  After some very brief checking, I'm
> starting[1] to think that the answer is yes.  Has anyone already gone
> through a significant effort to locate and eradicate memory leaks?

Yes, this has been dealt with before.  Have you read
src/backend/utils/mmgr/README?

AFAIK the major problems these days are not in the backend as a whole,
but in the lesser-used PL language modules (cf recent discussions).
plpgsql has some issues too, I suspect, but not as bad as pltcl etc.
Possibly the best answer is to integrate the memory-context notion into
those modules; if they did most of their work in a temp context that
could be freed once per PL statement or so, the problems would pretty
much go away.

It's fairly difficult to get anywhere with standard leak-tracking tools,
since they don't know anything about palloc.  What's worse, it is *not*
a bug for a routine to palloc space it never pfrees, if it knows that
it's palloc'ing in a short-lived memory context.  The fact that a
context may be released with much still-allocated memory in it is not a
bug but a feature; but try teaching that to any standard leak checker...
        regards, tom lane


pgsql-hackers by date:

Previous
From: Petru Paler
Date:
Subject: Re: Memory leaks
Next
From: Peter Eisentraut
Date:
Subject: Re: pg_dump and large files - is this a problem?