Commit 0f3707e0 authored by Tim Peters's avatar Tim Peters

Merge rev 38770 from 3.4 branch.

tpc_abort():  Release the commit lock no matter what.
parent 1e8cf435
...@@ -38,6 +38,14 @@ ZEO ...@@ -38,6 +38,14 @@ ZEO
erroneous ``AttributeError`` exception. Thanks to Tres Seaver for the erroneous ``AttributeError`` exception. Thanks to Tres Seaver for the
diagnosis. 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 PersistentMapping
----------------- -----------------
......
...@@ -192,8 +192,8 @@ class BaseStorage(UndoLogCompatible): ...@@ -192,8 +192,8 @@ class BaseStorage(UndoLogCompatible):
self._abort() self._abort()
self._clear_temp() self._clear_temp()
self._transaction = None self._transaction = None
self._commit_lock_release()
finally: finally:
self._commit_lock_release()
self._lock_release() self._lock_release()
def _abort(self): def _abort(self):
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment