[Buildbot-devel] branch building

Brian Warner warner-buildbot at lothar.com
Sun Aug 6 22:46:16 UTC 2006


> I having a problem with building branches on one particular buildslave. It
> will build trunk just fine, but if I force a build on a branch, it reports
> a permission denied error when trying to delete the trunk source directory.

Is there a test which is doing os.chmod(000) or something in your build
process? Which VC system (I assume SVN).. which mode= are you using? And what
OS is the buildslave running?

If you do multiple builds on the same branch, and you're using mode="update",
the buildslave can do an 'svn update' instead of 'svn checkout' and avoid
deleting the whole tree between builds. But if the branch changes, it has to
delete everything and re-checkout. If the build process does something to the
tree that prevents that delete from happening, you'd see the kind of error
you've just described.

We once had a test case which wanted to see what happened when certain
operations got Permission Denied errors, so they would chmod a-rwx a test
file to trigger this case. If the test failed, the cleanup code failed to
run, and the directory didn't get chmod'ed back to user-writable. This caused
the checkout step's rm -rf to fail. Our workaround was to add a 'find . -type
d -chmod u+rwx' command as the first step, before the SVN checkout.

Alternatively, if your buildslave is running on windows, the old "you can't
delete a file while someone else has it open for reading" problem might be
the cause. Maybe the LogObserver bug you found was causing the buildslave to
retain an open handle to a log file inside the tree past the end of the
previous build, thus preventing the rm -rf from completing?

> This is a new failure: the slave was previously capable of this function.
> It's not clear to me what changed.

Your previous message suggested you're running from buildbot HEAD.. what
version of the buildslave were you running before this failure cropped up?

cheers,
 -Brian




More information about the devel mailing list