[Buildbot-commits] [Buildbot] #1959: svn sourcestep mode="copy" always_purge=True fails with externals.

Buildbot nobody at buildbot.net
Fri May 13 18:12:27 UTC 2011


#1959: svn sourcestep mode="copy" always_purge=True fails with externals.
----------------------+-----------------------
Reporter:  tfogal     |      Owner:
    Type:  undecided  |     Status:  new
Priority:  minor      |  Milestone:  undecided
 Version:  0.8.1      |   Keywords:
----------------------+-----------------------
 The step:

 {{{
 tvk.addStep(SVN(svnurl=tuvok_root,
                 mode="copy",
                 always_purge=True,
                 alwaysUseLatest=True))
 }}}

 is failing repeatedly in the presence of repositories with svn:externals.

 The issue appears to be that a pre-setup phase deletes the entire "build"
 directory (via fork-exec 'rm'), and then a later step attempts to delete
 each external.  Of course, the external is a subdirectory of the "build"
 directory and it therefore no longer exists.

 Master version:
 {{{
 iv3d at buildbot $ buildbot --version
 Buildbot version: 0.8.1rc3-785-g8147f92
 Twisted version: 10.0.0
 }}}

 Slave version:
 {{{
 tfogal at cibc-rd6 $ buildslave --version
 Buildslave version: 0.8.1
 Twisted version: 10.0.0
 }}}

 {{{
 starting svn operation
 rm -rf /scratch/iv3d/tvk-ubuntu-9.10-amd64/build
  in dir /scratch/iv3d/tvk-ubuntu-9.10-amd64 (timeout 1200 secs)
  watching logfiles {}
  argv: ['rm', '-rf', '/scratch/iv3d/tvk-ubuntu-9.10-amd64/build']
  environment:
   DISPLAY=:0
   HOME=/scratch/iv3d
   PATH=/bin:/home/sci/tfogal/cibc-rd6/bin:/usr/local/bin:/usr/bin
   PWD=/scratch/iv3d/tvk-ubuntu-9.10-amd64
   PYTHONPATH=/home/sci/tfogal/cibc-rd6/lib64/python2.6/site-
 packages:/home/sci/tfogal/cibc-rd6/lib/python2.6/site-packages:
  closing stdin
  using PTY: False
 elapsedTime=0.012536
 /usr/bin/svn status --non-interactive --no-auth-cache --xml --no-ignore
  in dir /scratch/iv3d/tvk-ubuntu-9.10-amd64/source (timeout 1200 secs)
  watching logfiles {}
  argv: ['/usr/bin/svn', 'status', '--non-interactive', '--no-auth-cache',
 '--xml', '--no-ignore']
  environment:
   DISPLAY=:0
   HOME=/scratch/iv3d
   LC_MESSAGES=C
   PATH=/bin:/home/sci/tfogal/cibc-rd6/bin:/usr/local/bin:/usr/bin
   PWD=/scratch/iv3d/tvk-ubuntu-9.10-amd64/source
   PYTHONPATH=/home/sci/tfogal/cibc-rd6/lib64/python2.6/site-
 packages:/home/sci/tfogal/cibc-rd6/lib/python2.6/site-
 packages::/home/sci/tfogal/cibc-rd6/lib64/python2.6/site-
 packages:/home/sci/tfogal/cibc-rd6/lib/python2.6/site-packages:
  closing stdin
  using PTY: False
 elapsedTime=0.036347
 /scratch/iv3d/tvk-ubuntu-9.10-amd64/build/Basics

 remoteFailed: [Failure instance: Traceback from remote host -- Traceback
 (most recent call last):
   File "/home/sci/tfogal/cibc-rd6/lib/python2.6/site-
 packages/buildslave/commands/base.py", line 169, in processEnded
     self.command.finished(sig, rc)
   File "/home/sci/tfogal/cibc-rd6/lib/python2.6/site-
 packages/buildslave/commands/base.py", line 703, in finished
     d.callback(rc)
   File "/usr/lib/python2.6/dist-packages/twisted/internet/defer.py", line
 280, in callback
     self._startRunCallbacks(result)
   File "/usr/lib/python2.6/dist-packages/twisted/internet/defer.py", line
 354, in _startRunCallbacks
     self._runCallbacks()
 --- <exception caught here> ---
   File "/usr/lib/python2.6/dist-packages/twisted/internet/defer.py", line
 371, in _runCallbacks
     self.result = callback(self.result, *args, **kw)
   File "/home/sci/tfogal/cibc-rd6/lib/python2.6/site-
 packages/buildslave/commands/vcs.py", line 672, in _purgeAndUpdate2
     rmdirRecursive(filepath)
   File "/usr/lib/python2.6/shutil.py", line 208, in rmtree
     onerror(os.listdir, path, sys.exc_info())
   File "/usr/lib/python2.6/shutil.py", line 206, in rmtree
     names = os.listdir(path)
 exceptions.OSError: [Errno 2] No such file or directory: '/scratch/iv3d
 /tvk-ubuntu-9.10-amd64/build/Basics'
 ]
 }}}

 The 'svn status' command produces some XML if I run it manually:

 {{{
 tfogal at cibc-rd6 $ /usr/bin/svn status --non-interactive --no-auth-cache
 --xml --no-ignore
 <?xml version="1.0"?>
 <status>
 <target
    path=".">
 <entry
    path="Basics">
 <wc-status
    props="none"
    item="external">
 </wc-status>
 </entry>
 <entry
    path="IO">
 <wc-status
    props="none"
    item="external">
 </wc-status>
 </entry>
 <entry
    path=".buildbot-sourcedata">
 <wc-status
    props="none"
    item="unversioned">
 </wc-status>
 </entry>
 </target>
 </status>
 }}}

 As can be seen from the XML, the one line of real, actual output that you
 can see in the first paste:
 '{{{/scratch/iv3d/tvk-ubuntu-9.10-amd64/build/Basics}}}'
 happens to be an svn external directory.

-- 
Ticket URL: <http://trac.buildbot.net/ticket/1959>
Buildbot <http://buildbot.net/>
Buildbot: build/test automation


More information about the Commits mailing list