Sometimes, an external process can create a permissions error when using svn.
Given a buildslave, "svn st" the build's checked out source:
hegemone% svn st
? .buildbot-sourcedata
svn: Can't open file 'Agent/Resources/FileSyncAgent.xcdatamodeld/.xccurrentversion': Permission denied
This svn error seems to cause havoc in the buildbot master. Not only does the buildstep fail, but the buildbot master seems to deadlock and not respond to "buildbot reconfig /buildbot"
2008/01/08 18:04 -0700 [Broker,0,17.202.12.49] <Build syncbot1>.startBuild
2008/01/08 18:04 -0700 [Broker,0,17.202.12.49] acquireLocks(step <Build syncbot1>, locks [])
2008/01/08 18:04 -0700 [Broker,0,17.202.12.49] acquireLocks(step <buildbot.steps.source.SVN instance at 0x16adad0>, locks [])
2008/01/08 18:04 -0700 [Broker,0,17.202.12.49] ShellCommand?.startCommand(cmd=%s) (<RemoteCommand? 'svn' at 23780808>,)
2008/01/08 18:04 -0700 [Broker,0,17.202.12.49] <RemoteCommand? 'svn' at 23780808>: RemoteCommand?.run [0]
2008/01/08 18:04 -0700 [Broker,0,17.202.12.49] LoggedRemoteCommand?.start
2008/01/08 18:04 -0700 [-] BuildStep?.failed, traceback follows
The svnlog as reported by the buildslave is this:
U Ideas.txt
Updated to revision 18339.
/usr/bin/svnversion .
in dir /build/build
watching logfiles {}
argv: ['/usr/bin/svnversion', '.']
environment:
...
remoteFailed: [Failure instance: Traceback from remote host -- Traceback (most recent call last):
File "/Library/Python/2.5/site-packages/buildbot/slave/commands.py", line 156, in processEnded
self.command.finished(sig, rc)
File "/Library/Python/2.5/site-packages/buildbot/slave/commands.py", line 447, in finished
d.callback(rc)
File "/Library/Python/2.5/site-packages/twisted/internet/defer.py", line 239, in callback
self._startRunCallbacks(result)
File "/Library/Python/2.5/site-packages/twisted/internet/defer.py", line 304, in _startRunCallbacks
self._runCallbacks()
--- <exception caught here> ---
File "/Library/Python/2.5/site-packages/twisted/internet/defer.py", line 317, in _runCallbacks
self.result = callback(self.result, *args, **kw)
File "/Library/Python/2.5/site-packages/buildbot/slave/commands.py", line 1515, in _parse
if r[-1] == 'M':
exceptions.IndexError?: string index out of range
]
It's probably some problem with the svn output handling in python, given the error. I don't know python (yet) but maybe in the future can commit a patch.
This problem is resolved by changing the permission on the file originally mentioned in the buildslave's repository to be user-readable (so "svn st" doesn't error).