Lock test #37 and #42 is currently failing on Windows (with and
without the virus scanner). See:
http://ci.apache.org/builders/svn-slik-w2k3-x64-ra/builds/4511/steps/Test%20fsfs+serf/logs/faillog
It is related to the special 405/409/500 handler in handle_response
which is "completely wrong". *grin*
I think we're going out for dinner and stuff now, so I'll throw out
this incomplete patch and pick it up in the morning.
If someone else wants to take a look in the meantime, feel free! -- justin
Index: subversion/libsvn_ra_serf/util.c
===================================================================
--- subversion/libsvn_ra_serf/util.c (revision 1349376)
+++ subversion/libsvn_ra_serf/util.c (working copy)
@@ -1836,18 +1836,23 @@ handle_response(serf_request_t *request,
}
handler->conn->last_status_code = handler->sline.code;
- if (handler->sline.code == 405
+ if (!handler->server_error && (handler->sline.code == 405
|| handler->sline.code == 409
- || handler->sline.code >= 500)
+ || handler->sline.code >= 500))
{
/* 405 Method Not allowed.
409 Conflict: can indicate a hook error.
5xx (Internal) Server error. */
- /* ### this is completely wrong. it only catches the current network
- ### packet. we need ongoing parsing. see SERVER_ERROR down below
- ### in the process_body: area. we'll eventually move to that. */
- SVN_ERR(handle_server_error(request, response, scratch_pool));
+ svn_ra_serf__server_error_t *server_err;
+ server_err = begin_error_parsing(start_error, end_error, cdata_error,
+ handler->handler_pool);
+
+ /* Get the parser to set our DONE flag. */
+ server_err->parser.done = &handler->done;
+
+ handler->server_error = server_err;
+
if (!handler->session->pending_error)
{
apr_status_t apr_err = SVN_ERR_RA_DAV_REQUEST_FAILED;
Received on 2012-06-12 17:00:00 CEST