Thread: BUG #4510: memory leak with libpg.dll

BUG #4510: memory leak with libpg.dll

From
"MWendt"
Date:
The following bug has been logged online:

Bug reference:      4510
Logged by:          MWendt
Email address:      marian.wendt@inca.eu
PostgreSQL version: 8.1.x, 8.2.x
Operating system:   windows xp (client), linux (postgres server)
Description:        memory leak with libpg.dll
Details:

1) DB server is down.
2) the client will connect to these DB server and is running correctly in a
timeout. the problem is: for each connection attempt that will fail the
memory usage is growing. that will result in massive memory allocation, if
the client try to reconnect in high frequency. and furthermore the memory is
not freed when the next connection can be established.
3) I guess in libpg.dll are some connection structures that are not freed
correctly if the connection coult not established well.

Re: BUG #4510: memory leak with libpg.dll

From
Craig Ringer
Date:
MWendt wrote:
> The following bug has been logged online:
>
> Bug reference:      4510
> Logged by:          MWendt
> Email address:      marian.wendt@inca.eu
> PostgreSQL version: 8.1.x, 8.2.x
> Operating system:   windows xp (client), linux (postgres server)
> Description:        memory leak with libpg.dll
> Details:
>
> 1) DB server is down.
> 2) the client will connect to these DB server and is running correctly in a
> timeout. the problem is: for each connection attempt that will fail the
> memory usage is growing. that will result in massive memory allocation, if
> the client try to reconnect in high frequency. and furthermore the memory is
> not freed when the next connection can be established.
> 3) I guess in libpg.dll are some connection structures that are not freed
> correctly if the connection coult not established well.

Is there any chance you can supply the source code of a self-contained,
compileable test case (example program) that can demonstrate this? Your
description doesn't exclude the possibility of leaks occurring as a
consequence of failure to free resources in the program using libpq.

--
Craig Ringer

Re: BUG #4510: memory leak with libpg.dll

From
Tom Lane
Date:
Craig Ringer <craig@postnewspapers.com.au> writes:
> MWendt wrote:
>> 2) the client will connect to these DB server and is running correctly in a
>> timeout. the problem is: for each connection attempt that will fail the
>> memory usage is growing. that will result in massive memory allocation, if
>> the client try to reconnect in high frequency.

> Is there any chance you can supply the source code of a self-contained,
> compileable test case (example program) that can demonstrate this? Your
> description doesn't exclude the possibility of leaks occurring as a
> consequence of failure to free resources in the program using libpq.

In particular I wonder whether the application is neglecting to call
PQfinish() on the failed connection objects ...

            regards, tom lane