Merge pull request #11 from ThomasWaldmann/master

merge attic pr #228
This commit is contained in:
TW 2015-05-15 00:44:00 +02:00
commit a69ee0bddb
2 changed files with 10 additions and 2 deletions

View File

@ -186,7 +186,8 @@ class RemoteRepository:
raise Repository.ObjectNotFound(res[0], self.location.orig)
elif error == b'InvalidRPCMethod':
raise InvalidRPCMethod(*res)
raise self.RPCError(res.decode('utf-8'))
else:
raise self.RPCError(res.decode('utf-8'))
else:
yield res
if not waiting_for and not calls:

View File

@ -145,7 +145,14 @@ class Repository:
def prepare_txn(self, transaction_id, do_cleanup=True):
self._active_txn = True
self.lock.upgrade()
try:
self.lock.upgrade()
except UpgradableLock.WriteLockFailed:
# if upgrading the lock to exclusive fails, we do not have an
# active transaction. this is important for "serve" mode, where
# the repository instance lives on - even if exceptions happened.
self._active_txn = False
raise
if not self.index:
self.index = self.open_index(transaction_id)
if transaction_id is None: