diff --git a/qubes/backup.py b/qubes/backup.py index ab83ba03..d119095f 100644 --- a/qubes/backup.py +++ b/qubes/backup.py @@ -652,9 +652,6 @@ class Backup(object): self._done_vms_bytes += vm_info.size self._current_vm_bytes = 0 self._send_progress_update() - # Save date of last backup - if vm_info.vm: - vm_info.vm.backup_timestamp = datetime.datetime.now() yield from output_queue.put(QUEUE_FINISHED) @@ -799,9 +796,16 @@ class Backup(object): os.close(backup_stdout) else: backup_stdout.close() - if vmproc_task: - yield from vmproc_task - shutil.rmtree(self.tmpdir) + try: + if vmproc_task: + yield from vmproc_task + finally: + shutil.rmtree(self.tmpdir) + + # Save date of last backup, only when backup succeeded + for qid, vm_info in files_to_backup.items(): + if vm_info.vm: + vm_info.vm.backup_timestamp = datetime.datetime.now() self.app.save()