[Zope-dev] memory eating Zope..

Christian Scholz cs@comlounge.net
Mon, 4 Jun 2001 14:11:49 +0200


Hi!

> It looks like you're leaking requests.  This is often the consequence of
> setting an attribute on the REQUEST object which is aquisition wrapped. 
> For instance:
> 
> REQUEST.adtmldoc = REQUEST['PARENTS'][0]
> 
> When requests leak, references to all the objects referenced within the
> request (acquisition wrappers, etc.) leak as well.  This can be
> disastrous and gets worse when the site is busy (when there are more
> requests).  

ok, that's what I experienced.. the day the site got some more
traffic it also suddenly grow memorywise.
I also didn't know that doing above is a bad thing to do..
(though I don't actually understand why this is a problem and why it's
not freed then.. but on the other hand I am not that much into the
inner workings of acquisition ;-)

> It used to be the case that tracking this problem down was tediously
> difficult, and involved basically a binary search for leaks in all
> methods on the site.  But now, finding the cause is likely a job for
> Shane's LeakFinder product:  
> http://www.zope.org/Members/hathawsh/LeakFinder .

Ah, will try that out :)
And actually I directly found some method which fetches the actual
user object from a ZPatterns rack and sets this in the REQUEST at
every request. So maybe that's already the problem then.. will try
to remove that..

> Note that this is likely caused by some sort of brainbending circular
> reference problem that might be helped by Python 2.X's cyclic garbage
> collector.

Well, will also try out python 2.x then... (btw. are all 2.x python versions
working without problems with Zope? Don't want to get a new problem when
resolving the old one ;-)

Thanks!

Christian