autoland: catch unbundling race condition (bug 1398315) r=gps
authorbyron jones <glob@mozilla.com>
Mon, 11 Sep 2017 12:06:22 +0800
changeset 5572 511ca5dcfb46740beb12d116fe070f6981925c1e
parent 5571 f6c98ca8fb368007365927caf8e1da8d4f6f1f2f
child 5573 aa4228fd49eab17866aeca7f6b78ce1285fbf8b2
push id2564
push usergszorc@mozilla.com
push dateTue, 12 Sep 2017 18:46:15 +0000
treeherderversion-control-tools@511ca5dcfb46 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersgps
bugs1398315
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
autoland/autoland/autoland.py
--- 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