http://subversion.tigris.org/issues/show_bug.cgi?id=2601
Issue #|2601
Summary|ra_dav gives useless errors when
problems occur during
| xml parsing
Component|subversion
Version|trunk
Platform|All
URL|
OS/Version|All
Status|NEW
Status whiteboard|
Keywords|
Resolution|
Issue type|DEFECT
Priority|P2
Subcomponent|libsvn_ra_dav
Assigned to|issues subversion
Reported by|rooneg
------- Additional comments from rooneg tigris.org Fri Aug 25 15:02:25 -0700 2006 -------
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...
------------------------------------------------------------
---------
To unsubscribe, e-mail: issues-unsubscribe subversion.tigris.org
For additional commands, e-mail: issues-help subversion.tigris.org
|