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

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

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: trunk
    • Fix Version/s: 1.7.19, 1.8.14
    • Component/s: mod_dav_svn
    • Labels:
      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. 2_mod-dav-walk-scratch-pool.diff
          3 kB
          Stefan Sperling
        2. 1_gentree.py
          5 kB
          Stefan Sperling

          Activity

            People

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

              Dates

              • Created:
                Updated:
                Resolved: