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

WebDAV proxy code munging user data

Attach filesAttach ScreenshotAdd voteVotersWatch issueWatchersCreate sub-taskLinkCloneUpdate Comment AuthorReplace String in CommentUpdate Comment VisibilityDelete Comments
    XMLWordPrintableJSON

Details

    Description

      We're using the CollabNet 1.6.1 suite Apache/WebDAV on two servers in a
      master/mirror setup. If we commit to the mirror a file containing the string
      "/SVN", the master replies with "svn: Checksum mismatch, file..." -- the file
      was mangled en route. Wireshark says that the mirror rewrote the string "/SVN"
      to the string "/svn" inside the file being committed, thereby perturbing the
      checksum. Initial research points to dav_svn__location_body_filter...
      
      http://svn.collab.net/viewvc/svn/trunk/subversion/mod_dav_svn/mirror.c?revision=36159
      
      ...which seems to be doing a case-insensitive search-and-replace from
      "remotepath" -- the path component of the master server URI ("/svn" in our case)
      -- to "localpath" -- apparently the root of the repository as the mirror knows
      it (also "/svn" in our case).
      
      About a month ago (~ 25 June), I posted a note to the dev@ list and got this
      from David Glasser:
      
      <blockquote>
      This does look pretty nasty.  Like, "don't use this feature, it will corrupt
      your data" nasty.
      
      That filter is under-documented; I'm not sure what it's trying to convert.  I
      suppose URLs in the metadata of requests.  Justin, this is your code, right?
      </blockquote>
      
      That was the last we heard about this issue.
      
      In practice, the checksum prevents data corruption, and you can work around it
      by committing directly to the master. But it's still annoying -- especially if
      you don't already know what the problem is. :)
      

      Original issue reported by sbeasley

      Attachments

        Activity

          This comment will be Viewable by All Users Viewable by All Users
          Cancel

          People

            subversion-importer Subversion Importer
            subversion-importer Subversion Importer

            Dates

              Created:
              Updated:

              Slack

                Issue deployment