ClientStorage: deadlock on disconnect

Bug #142540 reported by Dieter Maurer
2
Affects Status Importance Assigned to Milestone
Zope 2
Invalid
Medium
Unassigned

Bug Description

ClientStorage (as distributed with Zope 2.6.1)
does not release its "_commit_lock" when
the connection to ZEO is lost during a commit.

The problem is caused by "ClientStorage.notifyDisconnected".
It sets "self._transaction" to "None" and then
checks whether is is not "None" (in which case
it would release the lock).

The following abort sees that "self._transaction"
is not "transaction" and does not release the lock
either.

The fix: Release the lock before transaction
is set to "None".

Revision history for this message
Hanno Schlichting (hannosch) wrote :

The code of notifyDisconnected is quite different today, the code seems to have moved to tpc_begin which seems to release the lock in all cases.

Changed in zope2:
status: New → Invalid
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.