[Buildbot-devel] problem with 'builddir' property of builders ...

Fabrice Crestois fcrestois at users.sourceforge.net
Mon Feb 5 22:37:09 UTC 2007


Brian Warner <warner-buildbot at ...> writes:

> 
> > now i get an error message: "builder x tries to reuse builddir [project]".
> 
> > what is the problem here? i use different builders on different slave 
> > machines, so the same builddir name should not be problematic.
> 
> The same 'builddir' is used on the master side to hold build logs, so they
> have to be unique across the whole buildmaster, not just the buildslaves.
> When storing build status, the buildmaster doesn't care which slave was used
> to run the build.. everything is keyed off the builder, hence each builder's
> builddir must be unique.
> 
> This requirement has been around for at least a year or so now, but this
> wasn't the case back in the beginning, so it's possible that some of the docs
> or warning messages don't express it as well as they should.
> 
> FWIW, you can programmatically generate the c['builders'] array in the config
> file with a loop that creates unique builddirs for each combination. That
> might help clean up some of that redundant code.
> 
> sorry,
>  -Brian
> 


Alexander Lorenz <lorenz at ...> writes:
> 
> hello,
> 
> i have several builders that build the same factory on different slaves 
> with different os'ses.
> in some buildsteps i have to use absolute paths on some previous 
> buildstep's results, so i assigned the same 'builddir' property name 
> [project] to all builders.


For interoperability with other software I want to have the same directory
organization in different build slave.

But you have introduce a limitation about the builddir name to

> When storing build status, the buildmaster doesn't care which slave was used
to run the build.. everything is keyed off the builder

Why do not use the builder name instead of the builder buildir ?

builbot/master.py:919
            basedir = data['name']

Perhaps i don't see bad side effect ?

By this way on the master side, the buildstatus directory is unique, on the
slave side the builddir can (or not) be unique

builbot/master.py:717
  if b['name'] in buildernames:
                raise ValueError("duplicate builder name %s"
                                 % b['name'])
            buildernames.append(b['name'])
#            if b['builddir'] in dirnames:
#                raise ValueError("builder %s reuses builddir %s"
#                                % (b['name'], b['builddir']))
#            dirnames.append(b['builddir'])

builbot/master.py:919
basedir = data['builddir'] # used on both master and slave






More information about the devel mailing list