autoland: catch unbundling race condition (bug 1398315) r?gps draft
authorbyron jones <glob@mozilla.com>
Mon, 11 Sep 2017 12:06:22 +0800
changeset 11634 8a13cfe9ba88c4f59c89c170e6c8888a4fa668d2
parent 11619 f6c98ca8fb368007365927caf8e1da8d4f6f1f2f
push id1779
push userbjones@mozilla.com
push dateMon, 11 Sep 2017 04:06:39 +0000
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