diff --git a/borg/locking.py b/borg/locking.py index cd54ca797..af17d8bcf 100644 --- a/borg/locking.py +++ b/borg/locking.py @@ -278,9 +278,11 @@ def _wait_for_readers_finishing(self, remove, sleep): try: if remove is not None: self._roster.modify(remove, REMOVE) - remove = None if len(self._roster.get(SHARED)) == 0: return # we are the only one and we keep the lock! + # restore the roster state as before (undo the roster change): + if remove is not None: + self._roster.modify(remove, ADD) except: # avoid orphan lock when an exception happens here, e.g. Ctrl-C! self._lock.release()