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

ra_dav gives useless errors when problems occur during xml parsing

VotersWatch issueWatchersLinkCloneUpdate Comment AuthorReplace String in CommentUpdate Comment VisibilityDelete Comments


    • Type: Bug
    • Status: Closed
    • Priority: Critical
    • Resolution: Fixed
    • Affects Version/s: trunk
    • Fix Version/s: ---
    • Component/s: libsvn_ra_neon
    • Labels:


      There are any number of ways to get ra_dav to return totally useless error
      messages, for example this happens when you use a svnsync that's built with an
      old version of the dav protocol implementation:
      subversion/libsvn_ra_dav/util.c:837: (apr_err=175002)
      svnsync: REPORT request failed on 'http://localhost/svn/dev'
      subversion/libsvn_ra_dav/util.c:297: (apr_err=175002)
      svnsync: REPORT of 'http://localhost/svn/dev': 200 OK (http://localhost)
      Wow, the error was 200 OK, that's useful!
      It turns out the underlying issue is that we get an error while we're parsing
      the REPORT xml, but the way we use neon doesn't give us any useful way to pass
      data back from the callbacks into the parsed_request function in util.c.  As a
      result, we just look for any error, and if we can't recognize it we use neon's
      error status, which in this case is a 200 OK, because we did successfully
      download the data.
      What we really need is a generic set of wrapper functions/baton that wrap the
      neon XML parser callbacks.  The new callbacks would accept svn_error_t's from
      svn code and store them, so they can be detected after the parse finishes  This
      would let us return useful errors from within the xml parsing code, despite the
      fact that neon only lets us return an int.
      Filing this as an issue so I don't forget about how to fix the problem...




            • Assignee:
              rooneg Garrett Rooney


              • Created:

                Issue deployment