From 513163276f00b5b3ea82ed2009ddb594b509e597 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= Date: Mon, 16 Oct 2017 04:07:27 +0200 Subject: [PATCH] backup: do not try to read tar's stderr past EOF If EOF is reached on tar's stderr, stop reading it, even if didn't found expected data. Log this event. This may happen when tar output some fatal error, instead of filelist. --- qubesadmin/backup/restore.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/qubesadmin/backup/restore.py b/qubesadmin/backup/restore.py index 7465f40..a9188f9 100644 --- a/qubesadmin/backup/restore.py +++ b/qubesadmin/backup/restore.py @@ -466,6 +466,9 @@ class ExtractWorker3(Process): # yet, so it will hang on write() when the output pipe fill up). while True: line = tar2_process.stderr.readline() + if not line: + self.log.warning('EOF from tar before got file size info') + break line = line.decode() if _tar_msg_re.match(line): self.log.debug('tar2_stderr: %s', line)