[Buildbot-devel] slave exception in 0.5 & CVS

Brian Warner warner-buildbot at lothar.com
Mon Aug 30 20:39:23 UTC 2004

> From: Timothee Besset <ttimo at idsoftware.com>
> This is the latest CVS, both master and slave. commands.py line 324 is
> checking args['dir'], which is present but set to none. It's not happening
> on my Linux slave, didn't check to see if that code path was not being
> hit, if the input data is right there.

Heh.. the changes have been coming so fast recently, "latest CVS" is a moving
target :).

I see the line with the problem, but I can't figure out what code path on the
master side could put a None in that spot. In the interests of sanity, I've
removed the old-slave/old-master compatibility code from both sides. I'll see
if we can add them back in before the next release (it will be easier to deal
with old slaves, because of the new slaves-report-command-versions feature).

I just updated process/step.py (r1.39) and slave/commands.py (r1.4) to
require args['workdir'] and ignore args['dir'] across all commands (so both
ShellCommand and the CVS/SVN commands treat ['workdir'] as the place where
the buildable sources should go). On the master side, all BuildSteps are
given a workdir= argument when they are constructed, which ought to be copied
into the args dict of any ShellCommand-derived subclass.

In this new scheme, ['workdir'] is mandatory, and is required to be a valid
subdirectory name (None is no longer allowed). I think this is cleaner,
especially with the new BuildFactory configuration scheme (the 'workdir'
argument has disappeared from the standard BuildFactory classes, as it became
a class-level attribute with a value of "build").

Update to those revisions, just for the sake of sanity, and ['dir'] should be
purged from all the standard BuildSteps. The real question is where, on the
master side, that None is coming from. Take a look at the new BuildFactory
stuff (buildbot.process.factory) and see if perhaps the None is resulting
from a custom BuildStep or obsolete workdir= parameter of a factory.


More information about the devel mailing list