httpd-bugs mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From bugzi...@apache.org
Subject DO NOT REPLY [Bug 36448] - mod_proxy hangs when the backend sends 100 Continue after 200 OK
Date Wed, 07 Sep 2005 11:46:35 GMT
DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG·
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
<http://issues.apache.org/bugzilla/show_bug.cgi?id=36448>.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND·
INSERTED IN THE BUG DATABASE.

http://issues.apache.org/bugzilla/show_bug.cgi?id=36448


vahe.khachikyan@siemens.com changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|RESOLVED                    |REOPENED
         Resolution|DUPLICATE                   |




------- Additional Comments From vahe.khachikyan@siemens.com  2005-09-07 13:46 -------
(In reply to comment #2)
> It's not *after* the last request, it's *before* the next request; it is 
> legitimate behaviour, try this patch:
> 
I hope here is no missunderstanding, cause IMHO "after" or "before" it 
doesn't metter! The same thing will hapen even if we imagine it is before.
I say imagine because my ktrace shows exactly that the "HTTP 100 Continue"
is in TCP stack before we even perform the write for next "GET /blah blah..."

> http://people.apache.org/~jorton/ap_proxy100.patch
I'll try your patch but I am afraid it can't solve this problem!
Take a look at this snippest of ktrace
-------------
...
 71228 httpd    CALL  read(0x18,0xbfbfe7af,0x1)
 71228 httpd    GIO   fd 24 read 1 byte
       "H"
 71228 httpd    RET   read 1
 71228 httpd    CALL  writev(0x18,0xbfbfe610,0x3)
 71228 httpd    GIO   fd 24 wrote 1550 bytes
       "POST /Blah/blah.asmx HTTP/1.1\r
        Host: hostname.com\r
...
...
...
 71228 httpd    RET   writev 1550/0x60e
 71228 httpd    CALL  writev(0x18,0xbfbfe610,0x1)
 71228 httpd    GIO   fd 24 wrote 429 bytes
       "<soap:Envelope xmlns:soap="
....
....
....
 71228 httpd    RET   writev 429/0x1ad
 71228 httpd    CALL  read(0x18,0x81f6028,0x1f40)
 71228 httpd    GIO   fd 24 read 24 bytes
       "TTP/1.1 100 Continue\r
        \r
       "
 71228 httpd    RET   read 24/0x18
...
----------------
And the result of this last read "TTP/1.1 100 Continue" is what we later pass to 
apr_date_checkmask() (code below and line numbers are from proxy_http.c 2.0.54)

710       /* Is it an HTTP/1 response?
711        * This is buggy if we ever see an HTTP/1.10
712        */
713        if (apr_date_checkmask(buffer, "HTTP/#.# ###*")) {
...
We never come in to this if block! Instead we will land here which is 
plain wrong!
...
807        } else {
808            /* an http/0.9 response */
809            backasswards = 1;
810            r->status = 200;
811            r->status_line = "200 OK";
812            p_conn->close += 1;
813        }

-- 
Configure bugmail: http://issues.apache.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.

---------------------------------------------------------------------
To unsubscribe, e-mail: bugs-unsubscribe@httpd.apache.org
For additional commands, e-mail: bugs-help@httpd.apache.org


Mime
View raw message