ZEO: effective lockout after exception in "CommitLog"

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

Bug Description

"ZEO.StorageServer.ZEOStorage" uses its "transaction" attribute
effectively as a lock to prevent several transaction commits from the same
client at the same time.

However, the "CommitLog()" call in "tpc_begin" can fail
for various reasons -- among others a "too many open file" condition.
In those cases, "tpc_begin" has already set its "transaction"
attribute but neither the exception nor cleanup code on the
client side resets it again. As a consequence, this client
can no longer start further transactions on ZEO.

The attached patch prevents this problem by creating the "CommitLog"
before "transaction" is set.

Tags: bug database
Revision history for this message
Dieter Maurer (d.maurer) wrote :
affects: zope2 → zodb
Revision history for this message
Jim Fulton (jim-zope) wrote :

The server transaction locking code has been completely rewritten for 3.10.
*This* bug is gone. :)

Changed in zodb:
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.