[Buildbot-devel] Scheduler maintenance windows?

Scott Lamb slamb at slamb.org
Wed Apr 26 06:43:27 UTC 2006

On Apr 25, 2006, at 7:10 PM, Brian Warner wrote:
> Yeah, I'd probably go with the custom Scheduler route. Something  
> like this:
> class BlackoutWindowScheduler(scheduler.Scheduler):

Perfect! Thanks.

> You'd probably want to parameterize the start and finish of the  
> blackout
> window, and make sure the window starts at least a checkout time  
> before the
> actual Perforce lockout starts (so that you probably won't have a  
> build still
> running when Perforce starts being uncooperative).

Right. It's actually worse than that for our real builds - they need  
to do some Perforce trickery at the _end_ of the build, so they'll  
need to stop well before the blackout period. They'll probably have  
to be down like three and a half hours around every checkpoint.  
(Maybe we'll have to start checkpointing once a week, at the expense  
of larger journals. The idea makes me feel Subversive.)

> I suppose a cleaner way (from the point of view of the user, but not
> necessarily the implentor) to do this would be to have a new kind  
> of Lock
> object, the TimeLock. You could create a TimeLock with a  
> description of when
> it opens up (in this case, all day long except for the nightly  
> blackout
> window), and make the checkout step or perhaps the whole Build try  
> to claim
> the lock. It wouldn't be quite the same as the regular SlaveLock and
> MasterLocks, because the timer wouldn't be allowed to "claim" the  
> lock while
> a build is running, but otherwise the code would probably be pretty  
> similar.

Interesting idea.

> It would also be nice to have a way to display *why* a build was  
> waiting for
> a lock, specifically which locks it was waiting for. The big yellow  
> rectangle
> that shows up when a build has "started" but the first step hasn't  
> been
> allowed to commence is kind of ugly.

Yeah, that'd be nice.


Scott Lamb <http://www.slamb.org/>

More information about the devel mailing list