[Zope-dev] SQLAlias Memory Leak?

Jon Prettyman jprettyman@acm.org
06 Dec 2000 15:08:33 -0800


I've seen this as well under DCOracle.

-jon

Dyon Balding <dyon@devcoder.com.au> writes:

> OK, I've had more of a hack at this, and I've narrowed the problem
> down a little.
> 
> It appears that any access to an SQLAlias object causes it to not
> be correctly released.  The SQLAlias objects means that you can
> access column names using a different case to how they are stored
> in the database.
> 
> For example, we store users in a users table in the database, with
> column names like USERNAME, but they are accessed with:
> <dtml-var username>, this causes the SQLAlias objects to stick around.
> 
> One solution to our problem is to just do a <dtml-var USERNAME>
> instead.  However that doesn't solve the problem with this
> "feature" of being able to call it with a different case.
> 
> This is a fairly easy bug to reproduce, on my setup at least :).
> I have tested it with ZSQLRelay and ZODBDA both talking to SQLServer,
> and with ZPyGreSQLDA talking to PostgreSQL.
> 
> I would appreciate it if someone else can reproduce the bug,
> and I'll put it in the Collector I guess.
> 
> thanks
> -d
> 
> On Wed, Dec 06, 2000 at 09:06:47AM +1100, Dyon Balding wrote:
> > Hi,
> > 
> > I have an application that stores state data in a
> > SQLServer database.  The Zope and database servers
> > run on different windows machines, using the ZODBCDA
> > product to connect Zope to the ODBC machinery.
> > 
> > What I have been observing is that the Zope client's
> > memory usage increases consistently when ZSQL methods
> > are being called.  In the Debug screens, the
> > culprit appears to be Shared.DC.ZRDB.RDB.SQLAlias.
> > 
> > Here's a dump of the first few lines after hitting
> > a ZSQL method a few hundred times using ab.  The
> > SQLAlias figures never seem to go down.
> > 
> > Class 
> >                                                 December 5, 2000
> >                                                 1:58 pm 
> >                                                                      December 5, 2000
> >                                                                      2:01 pm 
> >                                                                                          Delta 
> >         Shared.DC.ZRDB.RDB.SQLAlias 
> >                                                 1048 
> >                                                                      4068 
> >                                                                                          +3020 
> >         ZClasses.ZClass.ZClass 
> >                                                 73 
> >                                                                      108 
> >                                                                                          +35 
> >         OFS.DTMLMethod.DTMLMethod 
> >                                                 63 
> >                                                                      94 
> >                                                                                          +31 
> > 
> > In fact most of our servers run out of memory and need
> > to be restarted every couple of days when they get
> > sufficient use.
> > 
> > I've done a bit of a search of the mailing lists, and noone
> > else appears to be having the same problem.  So does
> > anyone have an idea of what we might be doing differently
> > to everyone else?  We appear to have the latest versions
> > installed.
> > 
> > I've had a bit of a look through the code, and it appears
> > that SQLAlias is used to case desensitize the column names
> > of the returned data?
> > 
> > Any pointers would be appreciated.
> > 
> > thanks, d
> > 
> > -- 
> > |    Dyon Balding             dyon@devcoder.com.au |
> > 
> > _______________________________________________
> > Zope-Dev maillist  -  Zope-Dev@zope.org
> > http://lists.zope.org/mailman/listinfo/zope-dev
> > **  No cross posts or HTML encoding!  **
> > (Related lists - 
> >  http://lists.zope.org/mailman/listinfo/zope-announce
> >  http://lists.zope.org/mailman/listinfo/zope )
> 
> -- 
> Dyon Balding <dyon@devcoder.com.au>
> 
> _______________________________________________
> Zope-Dev maillist  -  Zope-Dev@zope.org
> http://lists.zope.org/mailman/listinfo/zope-dev
> **  No cross posts or HTML encoding!  **
> (Related lists - 
>  http://lists.zope.org/mailman/listinfo/zope-announce
>  http://lists.zope.org/mailman/listinfo/zope )