au_test_harness: race condition when creating directories
Avoid race condition in creating download folder when running VMTest in
parallel.
BUG=None
TEST=Running ctest manually.
Change-Id: I4d233777ca297d5a86359ec5c4e1b90979e2859d
Reviewed-on: https://chromium-review.googlesource.com/792091
Commit-Ready: Po-Hsien Wang <pwang@chromium.org>
Tested-by: Po-Hsien Wang <pwang@chromium.org>
Reviewed-by: Ilja H. Friedel <ihf@chromium.org>
diff --git a/au_test_harness/cros_au_test_harness.py b/au_test_harness/cros_au_test_harness.py
index e7c3ecb..f029f01 100755
--- a/au_test_harness/cros_au_test_harness.py
+++ b/au_test_harness/cros_au_test_harness.py
@@ -21,6 +21,7 @@
import sys
import tempfile
import unittest
+import errno
import constants
sys.path.append(constants.CROSUTILS_LIB_DIR)
@@ -236,8 +237,11 @@
# Create download folder for payloads for testing.
download_folder = os.path.join(os.path.realpath(os.path.curdir),
'latest_download')
- if not os.path.exists(download_folder):
+ try:
os.makedirs(download_folder)
+ except OSError as e:
+ if e.errno != errno.EEXIST:
+ raise
with sudo.SudoKeepAlive():
au_worker.AUWorker.SetUpdateCache(update_cache)