[Buildbot-devel] git step fails to remove old build directory, causing source to be copied to wrong directory
Dan Kegel
dank at kegel.com
Fri Sep 19 21:26:03 UTC 2014
I'm using buildbot-slave-0.8.7 (out of inertia), with the git step like:
factory.addStep(Git(repourl=repourl, mode='full',
submodules=True, method='copy', branch=sbranch,
getDescription={'tags':True}))
Sometimes a previous build leaves some whacky process running,
so when the next git checkout tries to remove the old build directory,
it fails with
rm: cannot remove
'/home/buildbot/slave-state/cygwin/g-speak-yobuild10-win7/mzreach-webrtc-win7-msvc2013-master/build/webrtc/trunk/chromium/_gclient_src_4cokd8/.git/objects/pack/tmp_pack_Khspxc':
Device or resource busy
Buildbot then does a chmod (in hopes of fixing the failure), but of
course the 2nd rm still fails, since it wasn't a permission problem.
That second failure should trigger a build failure, but doesn't. As a result,
the following cp creates a source subdirectory in the old build directory (!)
which is rather confusing.
It kind of looks like the source tries to abort if the 2nd rm fails;
not sure why
that doesn't happen.
I should probably have the bot reboot after each build to avoid the problem.
But on the buildbot side, assuming this hasn't already been fixed:
I guess the question is, how does one add a unit test for this?
I imagine add one to buildslave/test/unit/test_commands_git.py
that uses a mock /bin/rm that always fails?
- Dan
More information about the devel
mailing list