[Buildbot-commits] [Buildbot] #2526: Un-started build steps with properties in descriptions fail

Buildbot trac trac at buildbot.net
Wed Jul 3 00:13:01 UTC 2013


#2526: Un-started build steps with properties in descriptions fail
---------------------+-----------------------
Reporter:  cmumford  |      Owner:
    Type:  defect    |     Status:  new
Priority:  major     |  Milestone:  undecided
 Version:  0.8.7p1   |   Keywords:
---------------------+-----------------------
 I have a set of build factories containing steps with descriptions which
 access properties that fail with the following exception:

 {{{
 Traceback (most recent call last):
   File "/usr/lib/python2.7/dist-packages/twisted/internet/defer.py", line
 576, in _runCallbacks
     current.result = callback(current.result, *args, **kw)
   File "/usr/lib/python2.7/dist-packages/twisted/internet/defer.py", line
 828, in _cbDeferred
     self.callback(self.resultList)
   File "/usr/lib/python2.7/dist-packages/twisted/internet/defer.py", line
 381, in callback
     self._startRunCallbacks(result)
   File "/usr/lib/python2.7/dist-packages/twisted/internet/defer.py", line
 489, in _startRunCallbacks
     self._runCallbacks()
 --- <exception caught here> ---
   File "/usr/lib/python2.7/dist-packages/twisted/internet/defer.py", line
 576, in _runCallbacks
     current.result = callback(current.result, *args, **kw)
   File "/usr/lib/python2.7/dist-
 packages/buildbot/status/web/waterfall.py", line 426, in call_content
     brcounts, request, ctx)
   File "/usr/lib/python2.7/dist-
 packages/buildbot/status/web/waterfall.py", line 490, in
 content_with_db_data
     sourceEvents))
   File "/usr/lib/python2.7/dist-
 packages/buildbot/status/web/waterfall.py", line 743, in phase2
     b = IBox(block[i]).getBox(request)
   File "/usr/lib/python2.7/dist-
 packages/buildbot/status/web/waterfall.py", line 173, in getBox
     text = text[:]
 exceptions.AttributeError: Interpolate instance has no attribute
 '__getitem__'
 }}}

 Some observations:

 1. Both Property() and Interpolate() fail.
 2. These exceptions seem happen until the last step has started - they
 synchronize access to avoid running more than one test on a slave.
 3. The exception happens whether it's a predefined property (i.e.
 buildnumber), or my custom property (test_build_num).

 Steps to reproduce:

 1. Expand the attached archive (bbtest.tgz)
 2. Run "make start" to create and start the master/slaves.
 3. Force a build of "Android Builder". The first build will fail as
 expected (see bug #2524)
 4. Force a second build of "Android Builder".
 5. Wait 15 seconds. (the build takes 10, and each tester takes 6).
 6. Reload the waterfall page.

 If you continue to reload the page until the last tester has started then
 the exception is not thrown and the property value is displayed correctly.

 '''Note 1''': You can reset to a clean state easily by running "make
 clean".

 '''Note 2''': Switching to master.cfg.noprops will allow the tests to work
 correctly, but without correct titles.

 '''Note 3''': This config is slightly Linux centric (note /tmp dir usage).

-- 
Ticket URL: <http://trac.buildbot.net/ticket/2526>
Buildbot <http://buildbot.net/>
Buildbot: build/test automation


More information about the Commits mailing list