[prev in list] [next in list] [prev in thread] [next in thread]
List: subversion-issues
Subject: [Issue 1201] Changed - 200 httpd response contains <error> in body
From: issues () subversion ! tigris ! org
Date: 2003-03-27 18:46:51
[Download RAW message or body]
http://subversion.tigris.org/issues/show_bug.cgi?id=1201
*** Old
--- New
***************
*** 67,69 ****
--- 67,95 ----
file not found: revision `5', path `/boobah'
</m:human-readable>
</D:error>
+
+ ------- Additional Comments From jamesl@tigris.org 2003-03-27 10:46 PST -------
+ After plowing through some Apache source, I think I have found the root of the \
problem. + I have been examining the Apache stock 2.0.44 source.
+
+ If we look at httpd-2.0.44/modules/dav/mod_dav.c line 3955, we have:
+ r->status = HTTP_OK;
+ ap_set_content_type(r, DAV_XML_CONTENT_TYPE);
+
+ /* run report hook */
+ if ((err = (*vsn_hooks->deliver_report)(r, resource, doc,
+ r->output_filters)) != NULL) {
+ /* NOTE: we're assuming that the provider has not generated any
+ content yet! */
+ return dav_handle_err(r, err, NULL);
+ }
+
+ Notice the status gets set to 200, but in the case of this bug, deliver_report \
generates an error. + dav_handle_err() does update the status through \
dav_error_response_tag() to 404. +
+ However, before we return from our deliver report handler (in this case it is \
dav_svn__update_report() ) we call ap_fflush(). + Somehow, this call to ap_fflush() \
is sending our headers, before we have returned and called dav_handle_err() to update \
the status. +
+ Perhaps someone who understands Apache and their bucket-brigade system can shed \
some light on it. +
+
---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscribe@subversion.tigris.org
For additional commands, e-mail: issues-help@subversion.tigris.org
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic