Uploaded image for project: 'Subversion'
  1. Subversion
  2. SVN-4531

server-side copy (over dav) is slow and uses too much memory

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Fixed
    • trunk
    • 1.7.19, 1.8.14
    • mod_dav_svn
    • None

    Description

      Copying a large and deep directory tree via URL->URL copy over DAV uses too much
      memory. In the wild, I've seen servers abort or crash while servicing copy
      operations of top-level directories in repositories totalling about 40GB in size.
      
      To reproduce, create a directory tree with the attached script (writes about
      400MB of data to /var/tmp/gentreetest/) and import this tree into a fresh
      repository under /trunk. I tested with trunk, FSFS format 7.
      
      Then try to copy the trunk directory over HTTP. httpd's quickly reaches up to 1
      or 2 GB in my observations. Even if the copy succeeds it takes some noticable
      amount of time to complete.
      
      This problem seems to be specific to mod_dav or mod_dav_svn.
      
      A workaround is to use file:// URLs. The copy operation completes instantly over
      file:// with no apparent memory usage problem.
      

      Attachments

        1. 1_gentree.py
          5 kB
          Stefan Sperling
        2. 2_mod-dav-walk-scratch-pool.diff
          3 kB
          Stefan Sperling

        Activity

          People

            Unassigned Unassigned
            stsp Stefan Sperling
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: