Give canary hwtests time till the next run to complete.
Reasons:
1. we see weird (non fatal) delays in running hwtests
2. devices in pool:bvt are just sitting idle between canaries
3. Tpms ask for timed out suite reruns
4. Build sheriffs are confused about how to handle a timeout
5. Most timeouts happen because of suites competing for DUTs
It shouldn't hurt to give the canaries time till the next run.
We should find a better way to monitor 1, one that doesn't involve
failing a build.
TEST=Trybot, unittests.
BUG=chromium:342502, chromium:351381
Change-Id: Ib8ec7cac87b1250eb3c3a28663c0ff2393045903
Previous-Reviewed-on: https://chromium-review.googlesource.com/189232
(cherry picked from commit 8971f9fcc5f12297aaac2f662e35a332651a2eb7)
Reviewed-on: https://chromium-review.googlesource.com/190379
Tested-by: Prashanth B <beeps@chromium.org>
Reviewed-by: Dharani Govindan <dharani@chromium.org>
Tested-by: Dharani Govindan <dharani@chromium.org>
Reviewed-by: Aviv Keshet <akeshet@chromium.org>
Commit-Queue: Prashanth B <beeps@chromium.org>
diff --git a/buildbot/cbuildbot_config.py b/buildbot/cbuildbot_config.py
index c3cf9ba..af45172 100755
--- a/buildbot/cbuildbot_config.py
+++ b/buildbot/cbuildbot_config.py
@@ -1579,7 +1579,8 @@
git_sync=False,
vm_tests=constants.SMOKE_SUITE_TEST_TYPE,
disk_vm_layout='usb',
- hw_tests=HWTestConfig.DefaultList(file_bugs=True),
+ # Canary hwtest timeout chosen based on the frequency of canary runs.
+ hw_tests=HWTestConfig.DefaultList(file_bugs=True, timeout=300 * 60),
upload_hw_test_artifacts=True,
signer_tests=True,
trybot_list=True,
diff --git a/buildbot/cbuildbot_config_unittest.py b/buildbot/cbuildbot_config_unittest.py
index f5da6bc..f42b096 100755
--- a/buildbot/cbuildbot_config_unittest.py
+++ b/buildbot/cbuildbot_config_unittest.py
@@ -212,11 +212,12 @@
"""Verify that hw test timeout is in a reasonable range."""
# The parallel library will kill the process if it's silent for longer
# than the silent timeout.
- max_timeout = parallel._BackgroundTask.MINIMUM_SILENT_TIMEOUT
+ max_timeout = parallel._BackgroundTask.SILENT_TIMEOUT
for build_name, config in cbuildbot_config.config.iteritems():
for test_config in config['hw_tests']:
self.assertTrue(test_config.timeout < max_timeout,
- '%s has a hw_tests_timeout that is too large.' % build_name)
+ '%s has a hw_tests_timeout of %s that is too large. Expected %s' %
+ (build_name, test_config.timeout, max_timeout))
def testValidUnifiedMasterConfig(self):
"""Make sure any unified master configurations are valid."""
diff --git a/lib/parallel.py b/lib/parallel.py
index 77db901..a76ee7a 100644
--- a/lib/parallel.py
+++ b/lib/parallel.py
@@ -76,7 +76,7 @@
# The time we allow processes to be silent. This must be greater than the
# hw_test_timeout set in cbuildbot_config.py, and less than the timeout set
# by buildbot itself (typically, 150 minutes.)
- SILENT_TIMEOUT = 60 * 145
+ SILENT_TIMEOUT = 60 * 315
# The amount by which we reduce the SILENT_TIMEOUT every time we launch
# a subprocess. This helps ensure that children get a chance to enforce the