https://bz.apache.org/bugzilla/show_bug.cgi?id=63855
Bug ID: 63855 Summary: Regression in handling 100-continue after PR 60330 Product: Apache httpd-2 Version: 2.4.41 Hardware: Sun OS: Solaris Status: NEW Severity: regression Priority: P2 Component: mod_proxy_http Assignee: bugs@httpd.apache.org Reporter: k.j.cher...@gmail.com Target Milestone: --- Hello. We are using 64-bit Apache 2.4.41 on Solaris SPARC. After attempted migration from 2.4.33, we were forced to rollback because of the way 100-continue is handled after PR 60330. We have apache running as a reverse proxy, with Apache Tomcat as backend. After receiving a request with "Expect: 100-Continue", when the client is waiting for "100-Continue" before sending any request body, the apache is not sending any request to tomcat, and is not sending a 100-Continue to the client either. It's very easy to reproduce: {code} openssl s_client -connect host:port -cert prv_key.pem -key prv_key.key POST /service HTTP/1.1 Host: host:port Content-Type: text/plain Content-Length: 1 Expect: 100-Continue {code} After last \r\n the client is expecting to see "HTTP/1.1 100 Continue", however apache is never sending it to the client. However, if I enter any character after last \r\n, the reply is correct (the 415 is fine in this case): {code} ... Content-Type: text/plain Expect: 100-Continue Content-Length: 1 1 HTTP/1.1 100 Continue HTTP/1.1 415 Unsupported Media Type Date: Wed, 16 Oct 2019 01:27:37 GMT Server: Apache-Coyote/1.1 Content-Length: 0 {code} When I run a snoop (tcpdump), I never see any packets going to the backend until I enter a request body. But the problem disappears when I add: {code} SetEnv proxy-sendchunks 1 {code} Can you please help me to figure out why is this happening, and is there any 'correct' ways to handle this bug? Maybe, it's possible to make another environment variable to turn on the 100-continue answers from the apache as it was before PR 60330? Thank you very much in advance. Our configuration (relevant to this case): {code} HttpProtocolOptions Unsafe LenientMethods Allow0.9 SetEnv proxy-initial-not-pooled 1 SetEnv force-response-1.0 1 SetEnvIf User-Agent ".*MSIE.*" nokeepalive ssl-unclean-shutdown SetEnvIf Request_Protocol HTTP/1.0$ force-proxy-request-1.0=1 <Proxy balancer://hostPORT> BalancerMember http://host1:PORT connectiontimeout=5 timeout=30 retry=30 ping=3 route=1 loadfactor=1 BalancerMember http://host2:PORT connectiontimeout=5 timeout=30 retry=30 ping=3 route=2 loadfactor=1 </Proxy> <Location /service> ProxyPass balancer://hostPORT/service ProxyPassReverse balancer://hostPORT/service </Location> {code} -- You are receiving this mail because: You are the assignee for the bug. --------------------------------------------------------------------- To unsubscribe, e-mail: bugs-unsubscr...@httpd.apache.org For additional commands, e-mail: bugs-h...@httpd.apache.org