On Sun, 9 Nov 2003 01:56:40 -0800, Ben Parker wrote:
> FWIW, if you close the connection before reassigning the variable
> to a new connection, your test script succeeds on my system (RedHat
> 7.3, MySQLdb 0.9.2, mysql 4.0.13-standard, python 2.2.3). Just add
> "conn.close()" at the end of the body of the for loop.
>
> It seems like the __del__ method isn't being called when the conn
> variable is reassigned to the new connection. It could be that
> MySQLdb keeps an internal reference to the connection so the
> reference count does drop to 0 when the conn variable is
                       ^ not
> reassigned. I have not reviewed the MySQLdb code so that's only a
> guess.
>
> We have had a bunch of issues with memory leaks due to unclosed db
> connections using MySQLdb 0.9.2. It's now strict policy in code
> reviews to make sure all db connections and cursors are explicitly
> closed using <connection>.close().

In my real application, the method that creates the connection lives in a library and 
returns the connection so that it can be optionally reused. So I don't know if there 
is a straightforward fix in my situation. For now, I'm using 0.9.1.


-Chuck
--
http://ChuckEsterbrook.com/




-------------------------------------------------------
This SF.Net email sponsored by: ApacheCon 2003,
16-19 November in Las Vegas. Learn firsthand the latest
developments in Apache, PHP, Perl, XML, Java, MySQL,
WebDAV, and more! http://www.apachecon.com/
_______________________________________________
Webware-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/webware-devel

Reply via email to