[ZODB-Dev] Tracking down a freeze (deadlock?)

Tim Peters tim at zope.com
Thu Feb 24 13:31:22 EST 2005


[Florent Guillaume]
...
> Hm I think I can answer that one. A persistent object is not supposed to
> have a __del__ that accesses the ZODB right ? Otherwise, well, we see
> what happens.

Sorry, I'm over my eyeballs with other work, and can't pay much attention to
this.

Persistent objects weren't intended to have __del__ methods period.  I doubt
anyone knows everything bad that might happen if you try to do that anyway.

The only bad thing I know of for sure was that a persistent object with a
__del__ method used to be able to provoke aConnection's in-memory cache into
an infinite loop, while the least-recently used objects were getting booted
from the cache (that typically happens after a transaction commit or abort).
That was fixed in ZODB 3.2.2b1, although the intent then was just to stop
the infinite loop, not to pretend to support persistent objects with __del__
methods.



More information about the ZODB-Dev mailing list