Buildbot master generates a setupBuild exception when attempting to run a builder

Bug #493575 reported by Yagisan
8
This bug affects 1 person
Affects Status Importance Assigned to Milestone
buildbot (Ubuntu)
Expired
Undecided
Unassigned

Bug Description

Binary package hint: buildbot

I installed buildbot on one master and two slave systems. I configured the master with a minimal configuration, and attached the two slaves. The configuration file passed validation from buildbot checkconfig. The buildbot service started, and the slaves connected. I attempted to start a build and the build immediately failed with a setupBuild exception. Examining twistd.log on the server revealed this as the cause of the setupBuild exception.

----- Start copy of twistd.log -----

2009-12-07 23:44:45+1100 [HTTPChannel,0,10.0.0.1] 10.0.0.1 - - [07/Dec/2009:12:44:44 +0000] "POST /builders/ubuntu-904-amd64-gcc43-rwd/force HTTP/1.1" 302 180 "http://shinka.bpa.nu:8010/builders/ubuntu-904-amd64-gcc43-rwd/" "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.15) Gecko/2009102815 Ubuntu/9.04 (jaunty) Firefox/3.0.15"
2009-12-07 23:44:45+1100 [Broker,0,10.0.0.118] ping finished: success
2009-12-07 23:44:45+1100 [Broker,0,10.0.0.118] <Build ubuntu-904-amd64-gcc43-rwd>.startBuild
2009-12-07 23:44:45+1100 [Broker,0,10.0.0.118] error while creating step, factory=[<buildbot.steps.source.Git instance at 0x30de128>], args={}
2009-12-07 23:44:45+1100 [Broker,0,10.0.0.118] Build.setupBuild failed
2009-12-07 23:44:45+1100 [Broker,0,10.0.0.118] Unhandled Error
        Traceback (most recent call last):
          File "/usr/lib/python2.6/dist-packages/twisted/internet/defer.py", line 243, in callback
            self._startRunCallbacks(result)
          File "/usr/lib/python2.6/dist-packages/twisted/internet/defer.py", line 312, in _startRunCallbacks
            self._runCallbacks()
          File "/usr/lib/python2.6/dist-packages/twisted/internet/defer.py", line 328, in _runCallbacks
            self.result = callback(self.result, *args, **kw)
          File "/usr/lib/python2.6/dist-packages/buildbot/process/builder.py", line 805, in _startBuild_2
            d = build.startBuild(bs, self.expectations, sb)
        --- <exception caught here> ---
          File "/usr/lib/python2.6/dist-packages/buildbot/process/base.py", line 351, in startBuild
            self.setupBuild(expectations) # create .steps
          File "/usr/lib/python2.6/dist-packages/buildbot/process/base.py", line 401, in setupBuild
            step = factory(**args)
        exceptions.TypeError: 'list' object is not callable

----- End copy of twistd.log -----

I have attached the relevant master.cfg file to this bug report.

With this bug, buildbot is non-functional on a Karmic host.

ProblemType: Bug
Architecture: amd64
Date: Mon Dec 7 23:59:43 2009
DistroRelease: Ubuntu 9.10
ExecutablePath: /usr/bin/buildbot
InterpreterPath: /usr/bin/python2.6
Package: buildbot 0.7.11p3-1
PackageArchitecture: all
ProcEnviron:
 PATH=(custom, no user)
 LANG=en_AU.UTF-8
 SHELL=/bin/sh
ProcVersionSignature: Ubuntu 2.6.31-16.52-server
SourcePackage: buildbot
Uname: Linux 2.6.31-16-server x86_64

Revision history for this message
Yagisan (yagisan) wrote :
Revision history for this message
Yagisan (yagisan) wrote :

I have duplicated this exact same bug on Ubuntu 9.04. I have attached the .apport file generated from ubuntu-bug, and have copied the output from twistd.log below.

--- Start of twistd.log ----
 22:30:35+1100 [HTTPChannel,0,10.0.0.113] 10.0.0.113 - - [08/Dec/2009:11:30:35 +0000] "GET /builders/ubuntu-904-amd64-gcc43-rwd/force?username=&comments=&branch=&revision= HTTP/1.1" 302 180 "http://10.0.0.135:8010/builders/ubuntu-904-amd64-gcc43-rwd/" "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.15) Gecko/2009102815 Ubuntu/9.04 (jaunty) Firefox/3.0.15"
2009-12-08 22:30:35+1100 [Broker,0,10.0.0.118] ping finished: success
2009-12-08 22:30:35+1100 [Broker,0,10.0.0.118] <Build ubuntu-904-amd64-gcc43-rwd>.startBuild
2009-12-08 22:30:35+1100 [Broker,0,10.0.0.118] error while creating step, factory=[<buildbot.steps.source.Git instance at 0x331a7e8>], args={}
2009-12-08 22:30:35+1100 [Broker,0,10.0.0.118] Build.setupBuild failed
2009-12-08 22:30:35+1100 [Broker,0,10.0.0.118] Unhandled Error
 Traceback (most recent call last):
   File "/usr/lib/python2.6/dist-packages/twisted/internet/defer.py", line 243, in callback
     self._startRunCallbacks(result)
   File "/usr/lib/python2.6/dist-packages/twisted/internet/defer.py", line 312, in _startRunCallbacks
     self._runCallbacks()
   File "/usr/lib/python2.6/dist-packages/twisted/internet/defer.py", line 328, in _runCallbacks
     self.result = callback(self.result, *args, **kw)
   File "/usr/lib/python2.6/dist-packages/buildbot/process/builder.py", line 637, in _startBuild_2
     d = build.startBuild(bs, self.expectations, sb)
 --- <exception caught here> ---
   File "/usr/lib/python2.6/dist-packages/buildbot/process/base.py", line 336, in startBuild
     self.setupBuild(expectations) # create .steps
   File "/usr/lib/python2.6/dist-packages/buildbot/process/base.py", line 387, in setupBuild
     step = factory(**args)
 exceptions.TypeError: 'list' object is not callable
---- End of twistd.log ----

Revision history for this message
Yagisan (yagisan) wrote :

I have now duplicated this bug on ubuntu 8.04 with buildbot 0.7.6-1. I have copied the output from twistd.log below, and have attached the adjusted master.cfg file needed to reproduce this on hardy (the locking commands were removed as they are not understood on this old version)

--- Start of twistd.log ----
2009/12/08 23:20 +1100 [Broker,0,10.0.0.118] ping finished: success
2009/12/08 23:20 +1100 [Broker,0,10.0.0.118] <Build ubuntu-904-amd64-gcc43-rwd>.startBuild
2009/12/08 23:20 +1100 [Broker,0,10.0.0.118] error while creating step, factory=[<buildbot.steps.source.Git instance at 0xc94440>], args={}
2009/12/08 23:20 +1100 [Broker,0,10.0.0.118] Build.setupBuild failed
2009/12/08 23:20 +1100 [Broker,0,10.0.0.118] Unhandled Error
 Traceback (most recent call last):
   File "/usr/lib/python2.5/site-packages/twisted/internet/defer.py", line 239, in callback
     self._startRunCallbacks(result)
   File "/usr/lib/python2.5/site-packages/twisted/internet/defer.py", line 304, in _startRunCallbacks
     self._runCallbacks()
   File "/usr/lib/python2.5/site-packages/twisted/internet/defer.py", line 317, in _runCallbacks
     self.result = callback(self.result, *args, **kw)
   File "/usr/lib/python2.5/site-packages/buildbot/process/builder.py", line 616, in _startBuild_2
     d = build.startBuild(bs, self.expectations, sb)
 --- <exception caught here> ---
   File "/usr/lib/python2.5/site-packages/buildbot/process/base.py", line 300, in startBuild
     self.setupBuild(expectations) # create .steps
   File "/usr/lib/python2.5/site-packages/buildbot/process/base.py", line 351, in setupBuild
     step = factory(**args)
 exceptions.TypeError: 'list' object is not callable
---- End of twistd.log ----

Revision history for this message
Yagisan (yagisan) wrote :

Further testing has demonstrated that the buildbot will only work if configured like the first example at http://djmitche.github.com/buildbot/docs/0.7.11/#Build-Steps ie:

 f = factory.BuildFactory()
 f.addStep(source.SVN(svnurl="http://svn.example.org/Trunk/"))
 f.addStep(shell.ShellCommand(command=["make", "all"]))
 f.addStep(shell.ShellCommand(command=["make", "test"]))

rather than the second example listed there ie:

setup_steps = [
         source.SVN(svnurl="http://svn.example.org/Trunk/")
         shell.ShellCommand(command="./setup")
]
quick = factory.BuildFactory()
quick.addSteps(setup_steps)
quick.addStep(shell.shellCommand(command="make quick"))

Which unfortunately for me means a lot of duplication of build scripts, and a lot more places to make changes to the buildbot as the project grows. So, yes, there is a work-around, but no, the bug still exists.

Revision history for this message
Adam Collard (adam-collard) wrote :

The two example configurations you posted were using addStep(a_python_list) instead of addSteps(a_python_list) - note the extra 's'.

Please confirm that if you use .addSteps() then things work as you expect.

Changed in buildbot (Ubuntu):
status: New → Incomplete
Revision history for this message
Adam Collard (adam-collard) wrote :

We'd like to figure out what's causing this bug for you, but we haven't heard back from you in a while. Could you please provide the requested information? Thanks!

Revision history for this message
Yagisan (yagisan) wrote :

To be honest, I needed a continuous integration system to be deployed, and instead of fiddling around with buildbot, I replaced it with hudson ( which I wish was in ubuntu ... ) and shipped it, so I never got around to having another go with buildbot.

Revision history for this message
Launchpad Janitor (janitor) wrote :

[Expired for buildbot (Ubuntu) because there has been no activity for 60 days.]

Changed in buildbot (Ubuntu):
status: Incomplete → Expired
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.