2011-01-03 Adam Barth <abarth@webkit.org>
authorabarth@webkit.org <abarth@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Mon, 3 Jan 2011 19:04:55 +0000 (19:04 +0000)
committerabarth@webkit.org <abarth@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Mon, 3 Jan 2011 19:04:55 +0000 (19:04 +0000)
        Reviewed by David Levin.

        commit-queue shouldn't reject patches twice if two bots process the same patch
        https://bugs.webkit.org/show_bug.cgi?id=51805

        Before raising an error, we first check whether the patch is still in
        the commit-queue.  This check is still racy, of course, but the time
        window is much smaller.

        * Scripts/webkitpy/tool/bot/commitqueuetask.py:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@74910 268f45cc-cd09-0410-ab3c-d52691b4dbfc

Tools/ChangeLog
Tools/Scripts/webkitpy/tool/bot/commitqueuetask.py

index 1b46228..8f15a03 100644 (file)
@@ -1,3 +1,16 @@
+2011-01-03  Adam Barth  <abarth@webkit.org>
+
+        Reviewed by David Levin.
+
+        commit-queue shouldn't reject patches twice if two bots process the same patch
+        https://bugs.webkit.org/show_bug.cgi?id=51805
+
+        Before raising an error, we first check whether the patch is still in
+        the commit-queue.  This check is still racy, of course, but the time
+        window is much smaller.
+
+        * Scripts/webkitpy/tool/bot/commitqueuetask.py:
+
 2011-01-03  Sam Weinig  <sam@webkit.org>
 
         Reviewed by Anders Carlsson.
index 1d82ea8..b9eba7b 100644 (file)
@@ -192,9 +192,14 @@ class CommitQueueTask(object):
             return False
 
         if self._build_and_test_without_patch():
-            raise self._script_error  # The error from the previous ._test() run is real, report it.
+            return self.report_failure()  # The error from the previous ._test() run is real, report it.
         return False  # Tree must be red, just retry later.
 
+    def report_failure(self):
+        if not self._validate():
+            return False
+        raise self._script_error
+
     def run(self):
         if not self._validate():
             return False
@@ -203,11 +208,11 @@ class CommitQueueTask(object):
         if not self._update():
             return False
         if not self._apply():
-            raise self._script_error
+            return self.report_failure()
         if not self._build():
             if not self._build_without_patch():
                 return False
-            raise self._script_error
+            return self.report_failure()
         if not self._test_patch():
             return False
         # Make sure the patch is still valid before landing (e.g., make sure
@@ -216,5 +221,5 @@ class CommitQueueTask(object):
             return False
         # FIXME: We should understand why the land failure occured and retry if possible.
         if not self._land():
-            raise self._script_error
+            return self.report_failure()
         return True