Index: scripts/slave/bot_update.py |
diff --git a/scripts/slave/bot_update.py b/scripts/slave/bot_update.py |
index 65a8178e0a959c14e5c0502a0e16dbef3f13d726..b86262f2159c4bb2b7261f87eec3d320bb614311 100755 |
--- a/scripts/slave/bot_update.py |
+++ b/scripts/slave/bot_update.py |
@@ -14,6 +14,7 @@ import json |
import optparse |
import os |
import pprint |
+import random |
import re |
import socket |
import subprocess |
@@ -415,6 +416,11 @@ def call(*args, **kwargs): # pragma: no cover |
return outval |
if result is FAIL: |
break |
+ if result is RETRY: |
+ sleep_backoff = 4 ** attempt |
+ sleep_time = random.randint(sleep_backoff, int(sleep_backoff * 1.2)) |
+ print '===backing off, sleeping for %d secs===' % sleep_time |
+ time.sleep(sleep_time) |
raise SubprocessFailed('%s failed with code %d in %s after %d attempts.' % |
(' '.join(args), code, cwd, attempt), |