[Zope] recursive python script = Memory Leak?
Andrew Altepeter
aaltepet@bethel.edu
16 May 2003 14:01:38 -0500
Hi Tom,
Thanks for your help with this memory leak. After looking into it a bit
further, it turns out that the leak is with Silva. I'll be asking the
silva-general list about this soon :-)
> Try adding a "depth" parameter to track the recursion level. For the
> first iteration, have the method print or otherwise log the list, so you
> can see what it starts out as.
Thanks for that tip; I've started using it for other recursive scripts
since this one.
[snip my recursion code]
> It looks to me like everything should be released by the time the thing
> returns from recursion. I would be the most concerned about "queue" and
> "new_queue" because they seem to have the most potential for keeping
> references hanging around - who knows what references Zope may construct
> once the thing returns? So the one thing I would try first is this -
>
> > if (context.is_root != 1):
> > return context.aq_parent.getRootedMenuList(new_queue)
> new_queue = None #just in case ...
> > else:
> > return new_queue
>
> Where does "is_root" come from?
is_root is a property that all 'BethelMenu's have...it's a way for me to
determine whether the current menu is the root menu or not, without
having to do:
if (context.aq_parent.meta_type != 'BethelMenu'):
#we know context is the root menu
>
> BTW, you do not need the parens around the condition expressions in the
> if statements.
Yup. I do prefer parens, though. I feel it helps me separate the
expressions better.
Thanks,
Andy
>
> Cheers,
>
> Tom P
>
> _______________________________________________
> Zope maillist - Zope@zope.org
> http://mail.zope.org/mailman/listinfo/zope
> ** No cross posts or HTML encoding! **
> (Related lists -
> http://mail.zope.org/mailman/listinfo/zope-announce
> http://mail.zope.org/mailman/listinfo/zope-dev )
>