diff --git a/docker_registry/lib/index/db.py b/docker_registry/lib/index/db.py index e9d4c68d2..9e1607364 100644 --- a/docker_registry/lib/index/db.py +++ b/docker_registry/lib/index/db.py @@ -113,7 +113,11 @@ def _generate_index(self, session): session.add(Version(id=self.version)) for repository in self._walk_storage(store=store): session.add(Repository(**repository)) - session.commit() + try: + session.commit() + except Exception as e: + logger.exception(str(e)) + session.rollback() @retry def _handle_repository_created( diff --git a/docker_registry/toolkit.py b/docker_registry/toolkit.py index 5a35c88a7..78b36eaad 100644 --- a/docker_registry/toolkit.py +++ b/docker_registry/toolkit.py @@ -327,7 +327,8 @@ def wrapper(*args, **kwargs): try: result = f(*args, **kwargs) finally: - os.remove(lock_path) + if os.path.exists(lock_path): + os.remove(lock_path) return result return wrapper