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