[Buildbot-devel] upgrade from 0.7.1 to 0.8.1. Troubles with schedulers

Boris Savelev boris.savelev at gmail.com
Mon Aug 2 07:25:57 UTC 2010


I use buildbot in my company. While upgrading I get some trouble with
0.8.1. Actualy 2 troubles-) And both with schedulers.

First trouble I describe in http://buildbot.net/trac/ticket/941

I try to force builder remotly -- via pb:
remote.callRemote("requestBuild", "builder")

but I get exception:
Unhandled error in Deferred:
Traceback from remote host -- Traceback (most recent call last):
  File "/usr/lib/python2.5/site-packages/twisted/spread/banana.py",
line 146, in gotItem
  File "/usr/lib/python2.5/site-packages/twisted/spread/banana.py",
line 111, in callExpressionReceived
  File "/usr/lib/python2.5/site-packages/twisted/spread/pb.py", line
526, in expressionReceived
  File "/usr/lib/python2.5/site-packages/twisted/spread/pb.py", line
837, in proto_message
    self._recvMessage(self.localObjectForID, requestID, objectID,
message, answerRequired, netArgs, netKw)
--- <exception caught here> ---
  File "/usr/lib/python2.5/site-packages/twisted/spread/pb.py", line
851, in _recvMessage
    netResult = object.remoteMessageReceived(self, message, netArgs, netKw)
  File "/usr/lib/python2.5/site-packages/twisted/spread/pb.py", line
236, in perspectiveMessageReceived
    method = getattr(self, "perspective_%s" % message)
exceptions.AttributeError: DebugPerspective instance has no attribute

Also I see that exception and when try launch builder via debugclient.
Is this a bug?

I have my own periodic scheduler, that get task from DB via django.
It look like that:
import buildbot.schedulers
class Taskman(buildbot.schedulers.timed.Periodic):
  import buildbot.process.properties

  def run(self):
    import datetime
    import cis_django.taskman.models
    for task in
= True):
      task.accepted = datetime.datetime.now()
      self.builderNames = [b.fullname() for b in
      properties = {
        'task':         task.buildnumber,
        'taskdesc':     task.description,
        'forgetsource': task.forgetSource,
        'user':         task.user.username,
      self.properties = buildbot.process.properties.Properties()
      self.properties.update(properties, "Scheduler")
      self.properties.setProperty("scheduler", self.name, "Scheduler")
and registered in configuration:
c['schedulers'].append(hacks.Taskman(name = 'task manager',
builderNames=[], periodicBuildTimer = 60))

With 0.7.12 this works perfectly, scheduler run every minute and start
builders if needed, but with 0.8.1 builders starts time-to-time, not
always. When builder didn't start in waterfall builder have status
"waiting <1 min." but nothing happens and after hour. I think that
periodic scheduler  in 0.8.1 depends on changes that buildbot
received, because when I send fakeChange, scheduler and builder wake


More information about the devel mailing list