Ignore errors that files (e.g., /var/log/messages) have changed.
BUG=chrome-os-partner:15915
TEST=Manual
Change-Id: Ib13c44e1480b78ddeeff6250b63e012f6649806c
Reviewed-on: https://gerrit.chromium.org/gerrit/37320
Reviewed-by: Jon Salz <jsalz@chromium.org>
Tested-by: Jon Salz <jsalz@chromium.org>
(cherry picked from commit ad463cbc4d932d799c02b6d845c57df43caf1354)
Reviewed-on: https://gerrit.chromium.org/gerrit/38557
Commit-Ready: Jon Salz <jsalz@chromium.org>
diff --git a/py/gooftool/gooftool.py b/py/gooftool/gooftool.py
index 93cb3a5..cd93ce2 100755
--- a/py/gooftool/gooftool.py
+++ b/py/gooftool/gooftool.py
@@ -38,6 +38,7 @@
from cros.factory.event_log import EventLog, EVENT_LOG_DIR
from cros.factory.event_log import TimedUuid
from cros.factory.test.factory import FACTORY_LOG_PATH
+from cros.factory.utils.process_utils import Spawn
# Use a global event log, so that only a single log is created when
@@ -692,9 +693,19 @@
raise Error('File does not exist: %s' % f)
tar_cmd += ' --add-file %s' % pipes.quote(f)
cmd_result = Shell(tar_cmd)
- if not cmd_result.success:
+
+ if ((cmd_result.status == 1) and
+ all((x == '' or
+ 'file changed as we read it' in x or
+ "Removing leading `/' from member names" in x)
+ for x in cmd_result.stderr.split('\n'))):
+ # That's OK. Make sure it's valid though.
+ Spawn(['tar', 'tfj', target_path], check_call=True, log=True,
+ ignore_stdout=True)
+ elif not cmd_result.success:
raise Error('unable to tar event logs, cmd %r failed, stderr: %r' %
(tar_cmd, cmd_result.stderr))
+
if options.upload_method is None or options.upload_method == 'none':
logging.warning('REPORT UPLOAD SKIPPED (report left at %s)', target_path)
return