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#SECTION000360000000000... 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