Skip to content

Commit b23e2ff

Browse files
authored
Use stable tree timer rather than Nightly scheduler for refleak builds (#515)
* Replace 'Nightly' schedulers Instead of once per day, they now wait for 1 hour after any change before starting a build (that is, if there is a change made and 59 minutes elapse before another change, the scheduler will wait another hour before starting a build containing both changes. The hope is that this will do a few things for us: - Avoid blocking workers that do refleak builds in addition to other builds: - Don't build branches that haven't changed (this could also be accomplished by adding 'onlyIfChanged=True' to the existing 'Nightly' schedulers) - Non-refleak builds should have time to finish up before refleak build(s) start (caveat: a refleak build on one branch may still block builds of other branches) - Associate refleak builds with actual changes * Remove superflous DAILYBUILDERS list They were exclusively refleak builders, which are now detected by tag.
1 parent 56db932 commit b23e2ff

File tree

2 files changed

+13
-36
lines changed

2 files changed

+13
-36
lines changed

master/custom/builders.py

Lines changed: 0 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -335,32 +335,6 @@ def get_builders(settings):
335335
return all_builders
336336

337337

338-
DAILYBUILDERS = [
339-
"AMD64 Windows11 Refleaks",
340-
"AMD64 Fedora Rawhide Refleaks",
341-
"AMD64 Fedora Stable Refleaks",
342-
"AMD64 RHEL8 Refleaks",
343-
"AMD64 CentOS9 Refleaks",
344-
"AMD64 Fedora Rawhide NoGIL refleaks",
345-
# Linux PPC64LE
346-
"PPC64LE Fedora Rawhide Refleaks",
347-
"PPC64LE Fedora Stable Refleaks",
348-
"PPC64LE RHEL8 Refleaks",
349-
"PPC64LE CentOS9 Refleaks",
350-
"PPC64LE Fedora Rawhide NoGIL refleaks",
351-
# Linux s390x
352-
"s390x Fedora Rawhide Refleaks",
353-
"s390x Fedora Refleaks",
354-
"s390x RHEL9 Refleaks",
355-
"s390x RHEL8 Refleaks",
356-
# Linux aarch64
357-
"aarch64 Fedora Rawhide Refleaks",
358-
"aarch64 Fedora Stable Refleaks",
359-
"aarch64 RHEL8 Refleaks",
360-
"aarch64 CentOS9 Refleaks",
361-
"aarch64 Fedora Rawhide NoGIL refleaks",
362-
]
363-
364338
# Match builder name (excluding the branch name) of builders that should only
365339
# run on the main and "custom" branches.
366340
ONLY_MAIN_BRANCH = (

master/master.cfg

Lines changed: 13 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,6 @@ from custom.release_dashboard import get_release_status_app # noqa: E402
4848
from custom.builders import ( # noqa: E402
4949
get_builders,
5050
STABLE,
51-
DAILYBUILDERS,
5251
ONLY_MAIN_BRANCH,
5352
TIER_1,
5453
TIER_2,
@@ -207,7 +206,7 @@ mail_status_builders = []
207206

208207
for branch_num, (git_url, branchname, git_branch) in enumerate(git_branches):
209208
buildernames = []
210-
dailybuildernames = []
209+
refleakbuildernames = []
211210
for name, worker_name, buildfactory, stability, tier in BUILDERS:
212211
if any(
213212
pattern in name for pattern in ONLY_MAIN_BRANCH
@@ -245,8 +244,8 @@ for branch_num, (git_url, branchname, git_branch) in enumerate(git_branches):
245244
elif "nondebug" not in tags and branchname in {"3.11", "3.12"}:
246245
continue
247246

248-
if name in DAILYBUILDERS:
249-
dailybuildernames.append(buildername)
247+
if 'refleak' in tags:
248+
refleakbuildernames.append(buildername)
250249
else:
251250
buildernames.append(buildername)
252251
if all(pattern not in buildername for pattern in NO_NOTIFICATION):
@@ -277,14 +276,18 @@ for branch_num, (git_url, branchname, git_branch) in enumerate(git_branches):
277276
fileIsImportant=is_important_change,
278277
)
279278
)
280-
if dailybuildernames:
279+
if refleakbuildernames:
281280
c["schedulers"].append(
282-
schedulers.Nightly(
283-
name=branchname + "-daily",
284-
hour=int(branch_num / (len(git_branches) - 1) * 23),
285-
minute=0,
281+
schedulers.SingleBranchScheduler(
282+
name=branchname + "-refleak",
286283
change_filter=util.ChangeFilter(branch=git_branch),
287-
builderNames=dailybuildernames,
284+
# Wait this many seconds for no commits before starting a build
285+
# NB: During extremely busy times, this can cause the builders
286+
# to never actually fire. The current expectation is that it
287+
# won't ever actually be that busy, but we need to keep an eye
288+
# on that.
289+
treeStableTimer=1 * 60 * 60, # h * m * s
290+
builderNames=refleakbuildernames,
288291
)
289292
)
290293

0 commit comments

Comments
 (0)