Title: [101662] trunk/Tools
Revision
101662
Author
aro...@apple.com
Date
2011-12-01 05:36:39 -0800 (Thu, 01 Dec 2011)

Log Message

Use curl for downloading builds to test slaves

Buildbot's built-in file transfer capabilities are transferring files much more slowly than
curl does. This seems to be due to a combination of buildbot being single-threaded (and thus
often busy servicing web requests, etc.) and using an IPC mechanism with fairly high
overhead (courtesy of the Twisted framework).

Eventually we'd like to make Buildbot's built-in transferring more efficient. In the
meantime we'll try using curl for downloads and keep thinking about a solution for uploads.
This should make the test slaves quite a bit faster, and should ease the CPU load on
build.webkit.org a bit.

Part of <http://webkit.org/b/73484> Mac slaves take 7+ minutes to upload or download a build

Reviewed by Mark Rowe.

* BuildSlaveSupport/build.webkit.org-config/master.cfg: Added the CreateWebKitBuildDirectory
to Test slaves. It's run just before DownloadBuiltProduct.
(DownloadBuiltProduct): Changed to be a normal ShellCommand that invokes curl to perform the
download.
(CreateWebKitBuildDirectory): Added. Creates the WebKitBuild directory on a slave.
FileDownload used to do this for us automatically.

Modified Paths

Diff

Modified: trunk/Tools/BuildSlaveSupport/build.webkit.org-config/master.cfg (101661 => 101662)


--- trunk/Tools/BuildSlaveSupport/build.webkit.org-config/master.cfg	2011-12-01 13:33:53 UTC (rev 101661)
+++ trunk/Tools/BuildSlaveSupport/build.webkit.org-config/master.cfg	2011-12-01 13:36:39 UTC (rev 101662)
@@ -168,16 +168,24 @@
         return result
 
 
-class DownloadBuiltProduct(transfer.FileDownload):
-    slavedest = WithProperties("WebKitBuild/%(configuration)s.zip")
-    mastersrc = WithProperties("archives/%(fullPlatform)s-%(architecture)s-%(configuration)s/%(got_revision)s.zip")
+class DownloadBuiltProduct(shell.ShellCommand):
+    command = ["curl", "--output", WithProperties("WebKitBuild/%(configuration)s.zip"), WithProperties(c["buildbotURL"] + "archives/%(fullPlatform)s-%(architecture)s-%(configuration)s/%(got_revision)s.zip")]
+    name = "download-built-product"
+    description = ["downloading built product"]
+    descriptionDone = ["downloaded built product"]
     haltOnFailure = True
     flunkOnFailure = True
 
-    def __init__(self):
-        transfer.FileDownload.__init__(self, self.mastersrc, self.slavedest)
 
+class CreateWebKitBuildDirectory(shell.ShellCommand):
+    command = ["mkdir", "-p", "WebKitBuild"]
+    name = "create-webkitbuild-dir"
+    description = ["creating WebKitBuild directory"]
+    descriptionDone = ["created WebKitBuild directory"]
+    haltOnFailure = True
+    flunkOnFailure = True
 
+
 class RunJavaScriptCoreTests(shell.Test):
     name = "jscore-test"
     description = ["jscore-tests running"]
@@ -642,6 +650,7 @@
     ExtractTestResultsClass = ExtractTestResults
     def __init__(self, platform, configuration, architectures, **kwargs):
         Factory.__init__(self, platform, configuration, architectures, False, **kwargs)
+        self.addStep(CreateWebKitBuildDirectory)
         self.addStep(DownloadBuiltProduct)
         self.addStep(ExtractBuiltProduct)
         self.addStep(RunJavaScriptCoreTests, buildJSCTool=False)

Modified: trunk/Tools/ChangeLog (101661 => 101662)


--- trunk/Tools/ChangeLog	2011-12-01 13:33:53 UTC (rev 101661)
+++ trunk/Tools/ChangeLog	2011-12-01 13:36:39 UTC (rev 101662)
@@ -1,3 +1,28 @@
+2011-11-30  Adam Roben  <aro...@apple.com>
+
+        Use curl for downloading builds to test slaves
+
+        Buildbot's built-in file transfer capabilities are transferring files much more slowly than
+        curl does. This seems to be due to a combination of buildbot being single-threaded (and thus
+        often busy servicing web requests, etc.) and using an IPC mechanism with fairly high
+        overhead (courtesy of the Twisted framework).
+
+        Eventually we'd like to make Buildbot's built-in transferring more efficient. In the
+        meantime we'll try using curl for downloads and keep thinking about a solution for uploads.
+        This should make the test slaves quite a bit faster, and should ease the CPU load on
+        build.webkit.org a bit.
+
+        Part of <http://webkit.org/b/73484> Mac slaves take 7+ minutes to upload or download a build
+
+        Reviewed by Mark Rowe.
+
+        * BuildSlaveSupport/build.webkit.org-config/master.cfg: Added the CreateWebKitBuildDirectory
+        to Test slaves. It's run just before DownloadBuiltProduct.
+        (DownloadBuiltProduct): Changed to be a normal ShellCommand that invokes curl to perform the
+        download.
+        (CreateWebKitBuildDirectory): Added. Creates the WebKitBuild directory on a slave.
+        FileDownload used to do this for us automatically.
+
 2011-11-21  Philippe Normand  <pnorm...@igalia.com>
 
         [GTK] enable-webaudio websetting
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to