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

Florent Guillaume fg at nuxeo.com
Thu Feb 24 06:25:36 EST 2005


>   File "/opt/zope/lib/python/ZODB/Connection.py", line 257, in _setDB
>     self._flush_invalidations()
>   File "/opt/zope/lib/python/ZODB/Connection.py", line 552, in
> _flush_invalidations
>     self._cache.invalidate(self._invalidated)
>   File
> "/appli/zeo/zeocli-192.168.106.6-8080/Products/DICOD/DICODMailingList.py",
> line 125, in __del__
>   File "/opt/zope/lib/python/ZODB/Connection.py", line 599, in setstate
>     invalid = self._is_invalidated(obj)
>   File "/opt/zope/lib/python/ZODB/Connection.py", line 617, in _is_invalidated
>     self._inv_lock.acquire()

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.

Ok I'll switch that code to using manage_beforeDelete. And I'll have a
talk with the person who wrote this :)

Florent

-- 
Florent Guillaume, Nuxeo (Paris, France)   CTO, Director of R&D
+33 1 40 33 71 59   http://nuxeo.com   fg at nuxeo.com


More information about the ZODB-Dev mailing list