[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