[Zope-dev] cPickleCache endless loop...

Chris McDonough chrism at plope.com
Fri Jan 23 10:31:59 EST 2004


Defining __del__ on a persistent object has unknown effects, FWIW.  A
persistent object's __del__ method may be called many times during its
lifetime.  See
http://zope.org/Wikis/ZODB/FrontPage/guide/node3.html#SECTION000360000000000000000 for more info.

- C

On Fri, 2004-01-23 at 09:55, Mario Lorenz wrote:
> Hello,
> 
> we have spent most of the day tracking down obscure
> hangs of Zope (2.6.4rc1) under python2.1.3 on a RHEL3
> machine.
> 
> The problem seems to be a logic flaw somewhere related
> to the cPickleCache, when using a destructor in a Zope
> object that accesses itself.
> 
> In our case(shortened to the offending line):
> 
>  def __del__(self):
>      print "About to destroy: ", self.id
> 
> What seems to happen is that the "self.id" access causes
> the object to be cached again, causing scan_gc_items()
> to run in circles.
> 
> Any ideas on how to best fix this?
> 
> Mario




More information about the Zope-Dev mailing list