Bug 37059 - SheriffBot should force_build builders that are idle and have failed exactly once
Summary: SheriffBot should force_build builders that are idle and have failed exactly ...
Status: RESOLVED FIXED
Alias: None
Product: WebKit
Classification: Unclassified
Component: New Bugs (show other bugs)
Version: 528+ (Nightly build)
Hardware: Other OS X 10.5
: P2 Normal
Assignee: Nobody
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2010-04-03 01:47 PDT by Adam Barth
Modified: 2010-04-05 22:53 PDT (History)
1 user (show)

See Also:


Attachments
Patch (8.57 KB, patch)
2010-04-03 01:49 PDT, Adam Barth
no flags Details | Formatted Diff | Diff
Patch (7.81 KB, patch)
2010-04-03 01:51 PDT, Adam Barth
no flags Details | Formatted Diff | Diff
Patch (8.63 KB, patch)
2010-04-05 22:44 PDT, Adam Barth
eric: review+
Details | Formatted Diff | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Adam Barth 2010-04-03 01:47:00 PDT
SheriffBot should force_build builders that are idle and have failed exactly once
Comment 1 Adam Barth 2010-04-03 01:49:04 PDT
Created attachment 52487 [details]
Patch
Comment 2 Adam Barth 2010-04-03 01:51:21 PDT
Created attachment 52488 [details]
Patch
Comment 3 Adam Barth 2010-04-03 01:53:49 PDT
Please review this change carefully.  This code is tricksy.

BTW, the BuildBot interface is really hard to use correctly because we have three presentations of a builder:
1) A Builder object
2) A dictionary of status information.
3) The builder's name.

It would be valuable to have the client always deal with builder objects (and to make the status information accessible via the Builder object).
Comment 4 Eric Seidel (no email) 2010-04-05 19:43:11 PDT
Comment on attachment 52488 [details]
Patch

Why the crazy caching?
 109     def provoke_flaky_builders(self, revisions_causing_failures=None):
 110         if revisions_causing_failures == None:
 111             revisions_causing_failures = self._tool.buildbot.revisions_causing_failures()

I give you {}.values()
116         failed_builder_names = \
 117             set([revisions_causing_failures[key].name()
 118                  for key in revisions_causing_failures.keys()])

the red_idle_builders code should be its own function.

Otherwise looks OK.
Comment 5 Adam Barth 2010-04-05 22:44:17 PDT
Created attachment 52606 [details]
Patch
Comment 6 Eric Seidel (no email) 2010-04-05 22:50:51 PDT
Comment on attachment 52606 [details]
Patch

OK.
Comment 7 Adam Barth 2010-04-05 22:53:23 PDT
Committed r57125: <http://trac.webkit.org/changeset/57125>