odbc, dbi modules memory leak???

M.-A. Lemburg mal at lemburg.com
Sat May 26 11:59:05 EDT 2001


Victor Muslin wrote:
> 
> The program below leaks memory:
> 
> The offender seems to be the statement:
> 
>         cur = dbconn.cursor()
> 
> If this statement is moved outside the loop so that the same cursor is
> re-used, memory leak stops. Why is the cursor not garbage collected
> properly?? Is there some trick I need to know? Help would be greatly
> appreciated.
> 
> I know that explicit deletes should not be necessary, just tried them
> in desperation :-(
> 
> I am using ActiveState Python 2.1 build 210 on Windows 2000. I
> observed the same behavior with BeOpen Python 2.0.

As I already wrote you in private mail, this is not due to Python
having a leak, but due to the poor implementation of the Oracle
ODBC you are using.

Please try the MS one for Oracle...
 
> TIA
> 
> --------------------------------------------------------
> 
> import dbi,odbc
> 
> sql = "SELECT application_instance, parameter_name,"\
>       " parameter_value"\
>       " FROM config_parameters"\
>       " WHERE ((application_type = '%s' AND "\
>       " (application_instance IS NULL OR"\
>       " application_instance = '%s'))"\
>       " AND (parameter_name LIKE '%s'))" % ('ADSERVER', 'ADSERVER_1',
> '%')
> 
> cs = 'dbsource_acf/vmuslin/dclk123'
> 
> dbconn = odbc.odbc(cs)
> for i in range(2000):
>     cur = dbconn.cursor()       # <--- offending statement
>     cur.execute(sql)
>     resultset = cur.fetchall()
>     del(cur)
>     del(resultset)
> 
> --
> http://mail.python.org/mailman/listinfo/python-list

-- 
Marc-Andre Lemburg
CEO eGenix.com Software GmbH
______________________________________________________________________
Company & Consulting:                           http://www.egenix.com/
Python Software:                        http://www.lemburg.com/python/




More information about the Python-list mailing list