Merge pull request #8030 from ThomasWaldmann/fix-with-lock-exceptions-1.4

borg with-lock: catch exception, print error msg, fixes #8022
This commit is contained in:
TW 2024-01-07 19:06:47 +01:00 committed by GitHub
commit 531d32460e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 7 additions and 0 deletions

View File

@ -1806,6 +1806,8 @@ class Archiver:
# we exit with the return code we get from the subprocess
rc = subprocess.call([args.command] + args.args, env=env)
set_ec(rc)
except (FileNotFoundError, OSError, ValueError) as e:
raise CommandError(f"Error while trying to run '{args.command}': {e}")
finally:
# we need to commit the "no change" operation we did to the manifest
# because it created a new segment file in the repository. if we would

View File

@ -3215,6 +3215,11 @@ class ArchiverTestCase(ArchiverTestCaseBase):
cmd = 'python3', '-c', 'import os, sys; sys.exit(42 if os.path.exists("%s") else 23)' % lock_path
self.cmd('with-lock', self.repository_location, *cmd, fork=True, exit_code=42)
def test_with_lock_non_existent_command(self):
self.cmd('init', '--encryption=repokey', self.repository_location)
cmd = ['non_existent_command', ]
self.cmd('with-lock', self.repository_location, *cmd, fork=True, exit_code=EXIT_ERROR)
def test_recreate_list_output(self):
self.cmd('init', '--encryption=repokey', self.repository_location)
self.create_regular_file('file1', size=0)