[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