autoland: catch unbundling race condition (
bug 1398315) r?gps
when unbundling mercurial checks for multiple heads (ie. losing a push race)
and throws a different error. these push races should also be retried.
MozReview-Commit-ID: BSxVhXg3G9s
--- a/autoland/autoland/autoland.py
+++ b/autoland/autoland/autoland.py
@@ -166,18 +166,20 @@ def handle_pending_transplants(dbconn):
reason = 'Tree %s is set to "approval required" - retrying ' \
'later.' % tree
logger.info('transplant failed: %s' % reason)
current_treestatus[destination] = False
handle_tree_retry(reason, transplant_id, tree, rev,
destination, trysyntax)
continue
- elif 'abort: push creates new remote head' in result:
+ elif ('abort: push creates new remote head' in result or
+ 'repository changed while pushing' in result):
logger.info('transplant failed: we lost a push race')
+ logger.info(result)
retry_revisions.append((now, transplant_id))
continue
elif 'unresolved conflicts (see hg resolve' in result:
logger.info('transplant failed - manual rebase required: '
'tree: %s rev: %s destination: %s error: %s' %
(tree, rev, destination, result))
# This is the only autoland error for which we expect the