Re: Problem with Memory Leak

From: Pete Kay <petedao(at)gmail(dot)com>
To: pgsql-general(at)postgresql(dot)org
Subject: Re: Problem with Memory Leak
Date: 2010-03-26 03:56:43
Message-ID: 7aa8bd9d1003252056m7cf7be5fi1cb23fef9ab9acc9@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

Hi,
I am setting up a connection pooling obj to pool a bunch of
PGConnection object. That is why I am not closing the PGConn object
when the query is done.

Is that the right way to do it?

thanks,
Pete

On Fri, Mar 26, 2010 at 10:54 AM, Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> wrote:
> Pete Kay <petedao(at)gmail(dot)com> writes:
>> I am having memory leaking problem and here is the result shown from valgrind:
>
>> ==1706== 1,270 bytes in 5 blocks are still reachable in loss record 353 of 426
>> ==1706==    at 0x4C20809: malloc (vg_replace_malloc.c:149)
>> ==1706==    by 0x5D3F431: strdup (in /lib64/libc-2.5.so)
>> ==1706==    by 0x109484E0: PQsendQuery (in /usr/lib64/libpq.so.5.2)
>
> Well, if that trace is to be believed, it must be talking about
> conn->last_query.  Which will be freed when the connection is closed
> (ie PQfinish).   It looks to me like you might need to pay more
> attention to closing things when you're done with them.  The logic
> you quoted seems pretty full of holes: it's freeing the argument "sql"
> in only some code paths, it leaves connection_node->conn as a dangling
> non-null pointer in the bad-PQstatus path, it leaks non-last PGresults;
> and you haven't even shown us where the connection is supposed to get
> cleaned up in non-failure cases.
>
>                        regards, tom lane
>

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Yogi Yang 007 2010-03-26 04:42:19 Re: How to retrieve List of Tables in a Database using...
Previous Message Scott Marlowe 2010-03-26 03:52:39 Re: How many Mandatory Process are there in Postgres