[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 )