[ZODB-Dev] Tracking down a freeze (deadlock?)
Dieter Maurer
dieter at handshake.de
Thu Feb 24 16:57:07 EST 2005
Florent Guillaume wrote at 2005-2-24 12:25 +0100:
>> 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.
On the other hand, it should not cause a deadlock.
It would not when "_inv_lock" were a reentrant lock.
I think, it could be (as "acquire" and "release" are not called
in different threads).
--
Dieter
More information about the ZODB-Dev
mailing list