[Buildbot] #3277: Builds that contain commands with SlaveLocks fail with exceptions due to inability to coerce SlaveLock to renderable

Buildbot trac trac at buildbot.net
Thu Jun 11 14:27:31 UTC 2015


#3277: Builds that contain commands with SlaveLocks fail with exceptions due to
inability to coerce SlaveLock to renderable
----------------------+--------------------
Reporter:  cody       |       Owner:
    Type:  undecided  |      Status:  new
Priority:  major      |   Milestone:  0.8.x
 Version:  master     |  Resolution:
Keywords:             |
----------------------+--------------------

Comment (by cody):

 I have not backported anything from master to my branch of eight. I've
 reproduced below with a clean eight to convince you of that.

 Running 0.8.13-pre-45-g928f147 (928f147e1ad6f550d5e7648c82f946cc010479c7:
 the current HEAD of origin/eight, direct from
 https://github.com/buildbot/buildbot.git, no additional changes or
 backports)

 An example config that reproduces the error (just do a force build):
 {{{
 # ex: set syntax=python:

 from buildbot.plugins import *
 c = BuildmasterConfig = {}

 c['protocols'] = {'pb': {'port': 9989}}
 c['slaves'] = [buildslave.BuildSlave("example-slave", "pass")]

 c['schedulers'] = [schedulers.ForceScheduler(
                             name="force",
                             builderNames=["runtests"])]

 from buildbot import locks
 lock = locks.SlaveLock("test-lock")

 factory = util.BuildFactory()
 factory.addStep(steps.ShellCommand(command=["echo", "Lock?"], locks =
 [lock.access('exclusive')]))

 c['builders'] = [util.BuilderConfig(name="runtests",
       slavenames=["example-slave"],
       factory=factory)]

 from buildbot.status import html
 c['status'] = [html.WebStatus(http_port=8010, allowForce=True)]
 }}}

 The error as reported by this version:
 {{{
 Traceback (most recent call last):
 Failure: twisted.internet.defer.FirstError: FirstError[#0, [Failure
 instance: Traceback (failure with no frames): <class
 'twisted.internet.defer.FirstError'>: FirstError[#0, [Failure instance:
 Traceback: <type 'exceptions.TypeError'>: ('Could not adapt', <SlaveLock
 (test-lock, 1)[example-slave] 140274040116504>, <InterfaceClass
 buildbot.interfaces.IRenderable>)
 /usr/lib/python2.7/site-
 packages/buildbot-0.8.13_pre_45_g928f147-py2.7.egg/buildbot/process/properties.py:157:render
 /usr/lib/python2.7/site-
 packages/twisted/internet/defer.py:150:maybeDeferred
 /usr/lib/python2.7/site-
 packages/buildbot-0.8.13_pre_45_g928f147-py2.7.egg/buildbot/process/properties.py:722:getRenderingFor
 /usr/lib/python2.7/site-
 packages/buildbot-0.8.13_pre_45_g928f147-py2.7.egg/buildbot/process/properties.py:157:render
 --- <exception caught here> ---
 /usr/lib/python2.7/site-
 packages/twisted/internet/defer.py:150:maybeDeferred
 /usr/lib/python2.7/site-
 packages/buildbot-0.8.13_pre_45_g928f147-py2.7.egg/buildbot/process/properties.py:739:getRenderingFor
 /usr/lib/python2.7/site-
 packages/buildbot-0.8.13_pre_45_g928f147-py2.7.egg/buildbot/process/properties.py:156:render
 ]]
 ]]
 }}}

--
Ticket URL: <http://trac.buildbot.net/ticket/3277#comment:6>
Buildbot <http://buildbot.net/>
Buildbot: build/test automation


More information about the bugs mailing list