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@xxxxxxxxxxxxx> wrote: > Pete Kay <petedao@xxxxxxxxx> 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 > -- Sent via pgsql-general mailing list (pgsql-general@xxxxxxxxxxxxxx) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-general