Re: Applications that leak connections - Mailing list pgsql-general

From Jonel Rienton
Subject Re: Applications that leak connections
Date
Msg-id 20050204012345.M49871@road14.com
Whole thread Raw
In response to Applications that leak connections  (Paul Tillotson <pntil@shentel.net>)
List pgsql-general
you are perfectly right, fixing the source of the problem is the best way to
fix this. i always make it a habit to close my connections as soon as i'm
done with it. if foxpro won't do it for you, you have to manage your own
resources, always a good practice for unmanaged applications.

i suggest you parse your code for all lines that opens the connection and
close it where it's not needed anymore.

good luck.

regards,


On Thu, 03 Feb 2005 18:27:46 -0500, Paul Tillotson wrote
> Does anyone have any useful info about dealing with applications
> which "leak" connections, eventually causing "connection limit
> exceeded for non superusers?"
>
> Obviously fixing the app is the best choice, but I have a feeling
> that this is going to recur again and again since the app is poorly
> maintained but still under active development (code base too large
> for the developer assigned to it).  The developer is likely to
> accidentally cause connection leaks in the future.
>
> This problem is also very easy to cause because doing this:
>
> c = sqlconnect("database")
> c = sqlconnect("database")
>
> Causes TWO connections to be made, and the first connection made is
> now
> (as far as I can see) impossible to close without closing the
> application.  The language (Visual Foxpro) does not garbage collect
> connections and so any connection whose handle is lost still takes
> up one of the slots.
>
> On the server side, I can detect this condition using ps -A or lsof;
> but I have not thought of a good solution to use when this is
> noticed.  One possibility is to just shut down the database and
> restart it when this happens.  I did some research into finding out
> if it was possible to break a specific TCP connection (this is linux
> 2.6 kernel--platform specific tools/commands ok).  For example,
>  could I use hping to break the connections?
>
> Does anyone know a safe way to shutdown just one backend (if it is
> idle)?
>
> Another possibility that I can think of is per ip address connection
> limits.  How hard would that be?
>
> Paul Tillotson
>
> ---------------------------(end of broadcast)---------------------------
> TIP 2: you can get off all lists at once with the unregister command
>
>     (send "unregister YourEmailAddressHere" to
> majordomo@postgresql.org)


--
Jonel Rienton
http://blogs.road14.com
Software Developer, *nix Advocate


pgsql-general by date:

Previous
From: David Fetter
Date:
Subject: Re: Is there a peer-to-peer server solution with PG?
Next
From: Postgre.News.Firma@spamgourmet.net
Date:
Subject: ADO adCmdStoredProc PlPgSql-SP Parameters