[Buildbot] #3546: MasterShellCommand ends up in exception

Buildbot trac trac at buildbot.net
Mon May 9 18:19:58 UTC 2016


#3546: MasterShellCommand ends up in exception
---------------------+------------------------
Reporter:  gracinet  |       Owner:
    Type:  defect    |      Status:  new
Priority:  major     |   Milestone:  undecided
 Version:  master    |  Resolution:
Keywords:            |
---------------------+------------------------

Comment (by gracinet):

 I have a systematic reproduction on the current Git master, simply by
 putting a `MasterShellCommand` in the sample configuration
 `master.cfg.sample`.

 This bug is not present in 0.9.0b8
 The culprit is this (from `buildbot.process.buildstep.py`, in the `run()`
 method):

 {{{
         finally:
             (...)
             self._start_deferred = None
             unhandled = self._start_unhandled_deferreds
             self._start_unhandled_deferreds = None
             self.realUpdateSummary()

         # Wait for any possibly-unhandled deferreds.  If any fail, change
 the
         # result to EXCEPTION and log.
         if unhandled:
             unhandled_results = yield defer.DeferredList(unhandled,
 consumeErrors=True)
 }}}

 what happens here is that there are unhandled `Deferred` needing to be
 taken care of, but one of them triggers the call to `_catchup()` which
 leads to the traceback because `self.step._start_unhandled_deferred` is
 now `None`.

 I'm not really aware of the changes that occured since 0.9.0b8 and could
 explain this, but at this point, isn't it simpler to rewrite
 `MasterShellCommand` as a new-style buildstep ?
 If I understand correctly, the `run()` base method is the compatibility
 layer.

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


More information about the bugs mailing list