[SCM] WebKit Debian packaging branch, debian/experimental, updated. upstream/1.3.3-9427-gc2be6fc
ojan at chromium.org
ojan at chromium.org
Wed Dec 22 16:30:48 UTC 2010
The following commit has been merged in the debian/experimental branch:
commit 65977401c10e0ea51b2476bca276036646d9c014
Author: ojan at chromium.org <ojan at chromium.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date: Wed Nov 24 22:28:00 2010 +0000
2010-11-24 Ojan Vafai <ojan at chromium.org>
Reviewed by Tony Chang.
[chromium] improve memory usage for test results server and store fewer runs
https://bugs.webkit.org/show_bug.cgi?id=50035
Store fewer runs and don't pass full files around when we only need bools.
Greatly improves error rates on test-results.appspot.com.
* Scripts/webkitpy/layout_tests/layout_package/json_results_generator.py:
* TestResultServer/handlers/testfilehandler.py:
* TestResultServer/model/dashboardfile.py:
* TestResultServer/model/jsonresults.py:
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@72699 268f45cc-cd09-0410-ab3c-d52691b4dbfc
diff --git a/WebKitTools/ChangeLog b/WebKitTools/ChangeLog
index 7a89f33..1eb7b35 100644
--- a/WebKitTools/ChangeLog
+++ b/WebKitTools/ChangeLog
@@ -1,3 +1,18 @@
+2010-11-24 Ojan Vafai <ojan at chromium.org>
+
+ Reviewed by Tony Chang.
+
+ [chromium] improve memory usage for test results server and store fewer runs
+ https://bugs.webkit.org/show_bug.cgi?id=50035
+
+ Store fewer runs and don't pass full files around when we only need bools.
+ Greatly improves error rates on test-results.appspot.com.
+
+ * Scripts/webkitpy/layout_tests/layout_package/json_results_generator.py:
+ * TestResultServer/handlers/testfilehandler.py:
+ * TestResultServer/model/dashboardfile.py:
+ * TestResultServer/model/jsonresults.py:
+
2010-11-24 Dirk Pranke <dpranke at chromium.org>
Reviewed by Tony Chang.
diff --git a/WebKitTools/Scripts/webkitpy/layout_tests/layout_package/json_results_generator.py b/WebKitTools/Scripts/webkitpy/layout_tests/layout_package/json_results_generator.py
index 3484fcd..331e330 100644
--- a/WebKitTools/Scripts/webkitpy/layout_tests/layout_package/json_results_generator.py
+++ b/WebKitTools/Scripts/webkitpy/layout_tests/layout_package/json_results_generator.py
@@ -80,7 +80,7 @@ class TestResult(object):
class JSONResultsGeneratorBase(object):
"""A JSON results generator for generic tests."""
- MAX_NUMBER_OF_BUILD_RESULTS_TO_LOG = 1500
+ MAX_NUMBER_OF_BUILD_RESULTS_TO_LOG = 750
# Min time (seconds) that will be added to the JSON.
MIN_TIME = 1
JSON_PREFIX = "ADD_RESULTS("
diff --git a/WebKitTools/TestResultServer/handlers/testfilehandler.py b/WebKitTools/TestResultServer/handlers/testfilehandler.py
index d817890..1e31206 100644
--- a/WebKitTools/TestResultServer/handlers/testfilehandler.py
+++ b/WebKitTools/TestResultServer/handlers/testfilehandler.py
@@ -198,12 +198,12 @@ class Upload(webapp.RequestHandler):
if ((incremental and filename == "results.json") or
(filename == "incremental_results.json")):
# Merge incremental json results.
- saved_file = JsonResults.update(master, builder, test_type, file.value)
+ update_succeeded = JsonResults.update(master, builder, test_type, file.value)
else:
- saved_file = TestFile.update(
+ update_succeeded = TestFile.update(
master, builder, test_type, file.filename, file.value)
- if not saved_file:
+ if not update_succeeded:
errors.append(
"Upload failed, master: %s, builder: %s, test_type: %s, name: %s." %
(master, builder, test_type, file.filename))
diff --git a/WebKitTools/TestResultServer/model/dashboardfile.py b/WebKitTools/TestResultServer/model/dashboardfile.py
index 57d3f6f..aad6d50 100644
--- a/WebKitTools/TestResultServer/model/dashboardfile.py
+++ b/WebKitTools/TestResultServer/model/dashboardfile.py
@@ -85,14 +85,16 @@ class DashboardFile(db.Model):
def update_file(cls, name):
data = cls.grab_file_from_svn(name)
if not data:
- return None
+ return False
logging.info("Got file from SVN.")
files = cls.get_files(name)
if not files:
logging.info("No existing file, added as new file.")
- return cls.add_file(name, data)
+ if cls.add_file(name, data):
+ return True
+ return False
logging.debug("Updating existing file.")
file = files[0]
@@ -102,7 +104,7 @@ class DashboardFile(db.Model):
logging.info("Dashboard file replaced, name: %s.", name)
- return file
+ return True
@classmethod
def delete_file(cls, name):
diff --git a/WebKitTools/TestResultServer/model/jsonresults.py b/WebKitTools/TestResultServer/model/jsonresults.py
index 97b277a..f5a0fde 100755
--- a/WebKitTools/TestResultServer/model/jsonresults.py
+++ b/WebKitTools/TestResultServer/model/jsonresults.py
@@ -45,7 +45,7 @@ JSON_RESULTS_PASS = "P"
JSON_RESULTS_NO_DATA = "N"
JSON_RESULTS_MIN_TIME = 1
JSON_RESULTS_VERSION = 3
-JSON_RESULTS_MAX_BUILDS = 1500
+JSON_RESULTS_MAX_BUILDS = 750
JSON_RESULTS_MAX_BUILDS_SMALL = 200
@@ -406,12 +406,10 @@ class JsonResults(object):
Large TestFile object if update succeeds or
None on failure.
"""
- small_file = cls.update_file(master, builder, test_type, incremental, JSON_RESULTS_FILE_SMALL, JSON_RESULTS_MAX_BUILDS_SMALL)
- large_file = cls.update_file(master, builder, test_type, incremental, JSON_RESULTS_FILE, JSON_RESULTS_MAX_BUILDS)
+ small_file_updated = cls.update_file(master, builder, test_type, incremental, JSON_RESULTS_FILE_SMALL, JSON_RESULTS_MAX_BUILDS_SMALL)
+ large_file_updated = cls.update_file(master, builder, test_type, incremental, JSON_RESULTS_FILE, JSON_RESULTS_MAX_BUILDS)
- if small_file and large_file:
- return large_file
- return None
+ return small_file_updated and large_file_updated
@classmethod
def update_file(cls, master, builder, test_type, incremental, filename, num_runs):
@@ -433,9 +431,9 @@ class JsonResults(object):
logging.info(
"Update failed, master: %s, builder: %s, test_type: %s, name: %s." %
(master, builder, test_type, filename))
- return None
+ return False
- return file
+ return True
@classmethod
def get_test_list(cls, builder, json_file_data):
--
WebKit Debian packaging
More information about the Pkg-webkit-commits
mailing list