[Zodb-checkins] SVN: ZODB/trunk/ Merge rev 38770 from 3.4 branch.

Tim Peters tim.one at comcast.net
Wed Oct 5 15:19:55 EDT 2005


Log message for revision 38772:
  Merge rev 38770 from 3.4 branch.
  
  tpc_abort():  Release the commit lock no matter what.
  

Changed:
  U   ZODB/trunk/NEWS.txt
  U   ZODB/trunk/src/ZODB/BaseStorage.py

-=-
Modified: ZODB/trunk/NEWS.txt
===================================================================
--- ZODB/trunk/NEWS.txt	2005-10-05 19:17:22 UTC (rev 38771)
+++ ZODB/trunk/NEWS.txt	2005-10-05 19:19:54 UTC (rev 38772)
@@ -38,6 +38,14 @@
   erroneous ``AttributeError`` exception.  Thanks to Tres Seaver for the
   diagnosis.
 
+BaseStorage
+-----------
+
+- (3.6a4) 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/trunk/src/ZODB/BaseStorage.py
===================================================================
--- ZODB/trunk/src/ZODB/BaseStorage.py	2005-10-05 19:17:22 UTC (rev 38771)
+++ ZODB/trunk/src/ZODB/BaseStorage.py	2005-10-05 19:19:54 UTC (rev 38772)
@@ -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