deploy_chrome: Retry test binary deployment
Tries the file copying in _DeployTestBinaries up to 3 times since
copying can fail due to rsync flakily getting a broken pipe.
BUG=chromium:1141618
TEST=Ran scripts/deploy_chrome_unittest.py
Change-Id: Iacc1f0fe3686030d8467c8476c08bba191ade848
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/chromite/+/2508467
Commit-Queue: Achuith Bhandarkar <achuith@chromium.org>
Tested-by: Achuith Bhandarkar <achuith@chromium.org>
Reviewed-by: Achuith Bhandarkar <achuith@chromium.org>
Auto-Submit: Brian Sheedy <bsheedy@chromium.org>
diff --git a/scripts/deploy_chrome.py b/scripts/deploy_chrome.py
index 7473393..70466ba 100644
--- a/scripts/deploy_chrome.py
+++ b/scripts/deploy_chrome.py
@@ -41,6 +41,7 @@
from chromite.lib import osutils
from chromite.lib import parallel
from chromite.lib import remote_access as remote
+from chromite.lib import retry_util
from chromite.lib import timeout_util
from gn_helpers import gn_helpers
@@ -383,8 +384,12 @@
self.tempdir, os.path.basename(_CHROME_TEST_BIN_DIR))
_PrepareStagingDir(self.options, self.tempdir, staging_dir,
copy_paths=binaries_to_copy)
- self.device.CopyToDevice(
- staging_dir, os.path.dirname(_CHROME_TEST_BIN_DIR), mode='rsync')
+ # Deploying can occasionally run into issues with rsync getting a broken
+ # pipe, so retry several times. See crbug.com/1141618 for more
+ # information.
+ retry_util.RetryException(
+ None, 3, self.device.CopyToDevice, staging_dir,
+ os.path.dirname(_CHROME_TEST_BIN_DIR), mode='rsync')
def _CheckConnection(self):
try: