https://bz.apache.org/bugzilla/show_bug.cgi?id=63855
--- Comment #12 from Konstantin J. Chernov <[email protected]> --- Yann, thank you very much for the detailed explanation and for the patch. First of all, I finally reproduced the issue, and you were right that it was caused by a per-request content filter. And I deeply apologize for not mentioning that we are using some of such modules (I never thought they can cause such an issue). I made a small module which is causing this issue when turned on: https://pastebin.com/3cARnJwm Also, mod_security is causing this issue as well. So, the correct steps to reproduce is: 1. Turn on the per-request input filter 2. Send the request with openssl as shown above 3. 100-Continue won't be send until the request body is sent by the client When I applied your patch, the 100-continue reply was missing the status line: {code} POST /service/endpoint HTTP/1.1 Host: host:port Content-Type: text/xml Content-Length: 1 Expect: 100-Continue HTTP/1.1 {code} So I modified it like that (I'm not sure whether it is the correct way to handle this, as I was unable to find when the status_line is set during the correct flow): {code} /* Send "100 Continue" if needed before spooling */ if (req->expecting_100) { int saved_status = r->status; char* saved_status_line = r->status_line; r->status = HTTP_CONTINUE; r->expecting_100 = 1; r->status_line = ap_get_status_line(r->status); ap_send_interim_response(r, 1); r->status = saved_status; r->status_line = saved_status_line; req->expecting_100 = 0; } {code} After I recompiled mod_proxy_http.so with the changes mentioned above, the issue is gone. -- You are receiving this mail because: You are the assignee for the bug. --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
