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

Dieter Maurer dieter@handshake.de
Wed, 16 Jul 2003 21:21:30 +0200


Etienne Labuschagne wrote at 2003-7-16 00:48 +0200:
 > ...
 > The above is abbreviated, but I can send you a more verbose list with stack 
 > traces for each step.  I printed out the 
 > threading.currentThread().getName()s every step to check which threads are 
 > doing what.

I am not really interested in a detailed log :-)

"Storage._transaction" is set in "tpc_begin" and reset in
"tpc_abort" and "tpc_finish".

When the check "transaction is self._transaction" fails,
look at "self._transaction".
When is is None, then
someone (maybe a different thread) called "tpc_abort" or "tpc_finish"
or (not likely "tpc_begin" was not executed).
When it is not None, then its value specifies the transaction
that most recently executed "tpc_begin". This must be a different
thread (since there is one transaction per thread and "transaction"
is ours).


Dieter