[Zodb-checkins] SVN: ZODB/branches/3.4/ tpc_abort(): Release the
commit lock no matter what.
Tim Peters
tim.one at comcast.net
Wed Oct 5 15:13:38 EDT 2005
Log message for revision 38770:
tpc_abort(): Release the commit lock no matter what.
Changed:
U ZODB/branches/3.4/NEWS.txt
U ZODB/branches/3.4/src/ZODB/BaseStorage.py
-=-
Modified: ZODB/branches/3.4/NEWS.txt
===================================================================
--- ZODB/branches/3.4/NEWS.txt 2005-10-05 19:02:48 UTC (rev 38769)
+++ ZODB/branches/3.4/NEWS.txt 2005-10-05 19:13:37 UTC (rev 38770)
@@ -5,6 +5,7 @@
Following are dates of internal releases (to support ongoing Zope 2
development) since ZODB 3.4's last public release:
+- 3.4.2b3 05-Oct-2005
- 3.4.2b2 04-Oct-2005
- 3.4.2b1 03-Oct-2005
@@ -18,6 +19,15 @@
happen, and stopped happening for subtransaction commits too. Making a
savepoint (or doing a subtransaction commit) does invoke cache gc now.
+BaseStorage
+-----------
+
+- (3.4.2b3) Nothing done by ``tpc_abort()`` should raise an exception.
+ However, if something does (an error case), ``BaseStorage.tpc_abort()``
+ left the commit lock in the acquired state, causing any later attempt
+ to commit changes hang.
+
+
PersistentMapping
-----------------
Modified: ZODB/branches/3.4/src/ZODB/BaseStorage.py
===================================================================
--- ZODB/branches/3.4/src/ZODB/BaseStorage.py 2005-10-05 19:02:48 UTC (rev 38769)
+++ ZODB/branches/3.4/src/ZODB/BaseStorage.py 2005-10-05 19:13:37 UTC (rev 38770)
@@ -192,8 +192,8 @@
self._abort()
self._clear_temp()
self._transaction = None
+ finally:
self._commit_lock_release()
- finally:
self._lock_release()
def _abort(self):
More information about the Zodb-checkins
mailing list