[Zope] Zope Freezing up with multiple threads accessing objects.

Etienne Labuschagne elabuschagne@gmsonline.co.za
Mon, 14 Jul 2003 13:29:23 +0200


Ok, I have narrowed down my problem to the following, when calling 
get_transaction().commit(), the :

In ZODB:

In ZODB.Transaction.Transaction

commit line 264: self._finish_many(jars)
_finish_many line 393: jar.tpc_finish(self)

in ZODB.Connection.Connection

tpc_finish line 692: self._storage.tpc_finish(transaction, 
self._invalidate_invalidating)

in ZODB.BaseStorage.BaseStorage

tpc_finish line 155: if transaction is not self._transaction: return

Now this line returns without calling _invalidate_invalidating in 
Connection.Connection.  This in turn causes that the global lock on 
Globals.DB is not released.  This freezes up Zope.  This keeps me up 'till 
3 in the morning.

What am I doing wrong that causes this.  Shouldn't the code above have some 
safeguard against such blocking.

Also logging this in the collector.
Etienne