From 9130baf973c6540437af18ce42cd8ab96b5f6df3 Mon Sep 17 00:00:00 2001 From: Thomas Waldmann Date: Thu, 24 Oct 2024 00:05:29 +0200 Subject: [PATCH] lock after checking repo exists, fixes #8485 --- src/borg/repository.py | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/borg/repository.py b/src/borg/repository.py index 3dbaa4b7d..441359232 100644 --- a/src/borg/repository.py +++ b/src/borg/repository.py @@ -230,10 +230,6 @@ class Repository: raise self.DoesNotExist(str(self._location)) from None else: self.store_opened = True - if lock: - self.lock = Lock(self.store, exclusive, timeout=lock_wait).acquire() - else: - self.lock = None try: readme = self.store.load("config/readme").decode() except StoreObjectNotFound: @@ -247,6 +243,9 @@ class Repository: str(self._location), "repository version %d is not supported by this borg version" % self.version ) self.id = hex_to_bin(self.store.load("config/id").decode(), length=32) + # important: lock *after* making sure that there actually is an existing, supported repository. + if lock: + self.lock = Lock(self.store, exclusive, timeout=lock_wait).acquire() self.opened = True def close(self):