venvlib: handle missing log file better
If we failed early enough that there is no log, don't crash trying
to dump it.
BUG=chromium:1109615
TEST=create_env w/missing py2 modules doesn't double crash
Change-Id: Ic0174e4e83dca686e7eccfecc4db3a28bb3745d2
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/infra_virtualenv/+/2319394
Reviewed-by: Chris McDonald <cjmcdonald@chromium.org>
Commit-Queue: Mike Frysinger <vapier@chromium.org>
Tested-by: Mike Frysinger <vapier@chromium.org>
diff --git a/venv/cros_venv/venvlib.py b/venv/cros_venv/venvlib.py
index f55c6f2..cda555f 100644
--- a/venv/cros_venv/venvlib.py
+++ b/venv/cros_venv/venvlib.py
@@ -116,8 +116,13 @@
@property
def logdata(self):
"""Get any internal logged data."""
- with open(self._paths.logfile) as fp:
- return fp.read()
+ try:
+ with open(self._paths.logfile) as fp:
+ return fp.read()
+ except IOError as e:
+ if e.errno == errno.ENOENT:
+ return '<log does not exist>'
+ raise
def _log_env(self, logfile):
"""Log details about the active runtime for debugging."""