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;