| 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), | 
|  |