| Index: masters/master.client.v8/master.cfg
|
| diff --git a/masters/master.client.v8/master.cfg b/masters/master.client.v8/master.cfg
|
| index 16311011017ed67bc1e2a6dc8f1cabaee2b58a53..1444d0f7e4096eaecced0fa285fe54f7d3edf64e 100644
|
| --- a/masters/master.client.v8/master.cfg
|
| +++ b/masters/master.client.v8/master.cfg
|
| @@ -5,6 +5,8 @@
|
| # Use of this source code is governed by a BSD-style license that can be
|
| # found in the LICENSE file.
|
|
|
| +
|
| +from buildbot.process import buildrequest
|
| from buildbot.scheduler import Nightly
|
| from buildbot.scheduler import Scheduler
|
|
|
| @@ -17,6 +19,7 @@ from master.factory import annotator_factory
|
| import config
|
| import master_site_config
|
|
|
| +import math
|
| import os
|
|
|
|
|
| @@ -28,6 +31,19 @@ MAIL_NOTIFIER = ActiveMaster.is_production_host
|
| c = BuildmasterConfig = {}
|
| c['status'] = []
|
|
|
| +def merge_requests_logarithmic(req1, req2, queue_length=1):
|
| + """Merges builds dependent on the number of builds in the queue."""
|
| + if not buildrequest.BuildRequest.canBeMergedWith(req1, req2):
|
| + return False
|
| +
|
| + # We inject our own data into the left build request's dict to keep track of
|
| + # the number of merged builds. Buildbot compares the left one with all others
|
| + # in the queue.
|
| + num = req1.brdict.setdefault('monkey_patch_merged', 2)
|
| + if num > int(math.log(queue_length or 1, 2)) + 1:
|
| + return False
|
| + req1.brdict['monkey_patch_merged'] = num + 1
|
| + return True
|
|
|
| ####### DATABASE
|
|
|
| @@ -225,6 +241,7 @@ b_v8_linux_predictable = {
|
| 'factory': m_annotator.BaseFactory('v8'),
|
| 'category': CATEGORY_FYI + '|predictable',
|
| 'auto_reboot' : False,
|
| + 'mergeRequests': merge_requests_logarithmic,
|
| }
|
|
|
| b_v8_linux_interpreted_regexp = {
|
|
|