From 0eb70e1551f530853ea9a99b41a9d37efa033768 Mon Sep 17 00:00:00 2001 From: Houkime <> Date: Wed, 9 Aug 2023 14:46:27 +0000 Subject: [PATCH] fix(backups): robustness against stale locks: snapshot sizing --- selfprivacy_api/backup/backuppers/restic_backupper.py | 6 +++++- tests/test_graphql/test_backup.py | 3 +++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/selfprivacy_api/backup/backuppers/restic_backupper.py b/selfprivacy_api/backup/backuppers/restic_backupper.py index 022bda7..5db9f11 100644 --- a/selfprivacy_api/backup/backuppers/restic_backupper.py +++ b/selfprivacy_api/backup/backuppers/restic_backupper.py @@ -335,6 +335,7 @@ class ResticBackupper(AbstractBackupper): with subprocess.Popen( command, stdout=subprocess.PIPE, + stderr=subprocess.STDOUT, shell=False, ) as handle: output = handle.communicate()[0].decode("utf-8") @@ -382,7 +383,10 @@ class ResticBackupper(AbstractBackupper): ) with subprocess.Popen( - restore_command, stdout=subprocess.PIPE, shell=False + restore_command, + stdout=subprocess.PIPE, + stderr=subprocess.STDOUT, + shell=False, ) as handle: # for some reason restore does not support diff --git a/tests/test_graphql/test_backup.py b/tests/test_graphql/test_backup.py index da4da7a..556b72b 100644 --- a/tests/test_graphql/test_backup.py +++ b/tests/test_graphql/test_backup.py @@ -791,6 +791,9 @@ def test_operations_while_locked(backups, dummy_service): # using lowlevel to make sure no caching interferes assert Backups.provider().backupper.is_initted() is True + Backups.provider().backupper.lock() + assert Backups.snapshot_restored_size(snap.id) > 0 + # check that no locks were left Backups.provider().backupper.lock() Backups.provider().backupper.unlock()