tomcat-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From bugzi...@apache.org
Subject DO NOT REPLY [Bug 51881] Server incorrectly parses incoming HTTP requests and loses them
Date Wed, 28 Sep 2011 06:06:05 GMT
https://issues.apache.org/bugzilla/show_bug.cgi?id=51881

Edward Alexandrov <stfighter@mail.ru> changed:

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

--- Comment #7 from Edward Alexandrov <stfighter@mail.ru> 2011-09-28 06:06:05 UTC ---
The issue reproduces 100% on all Tomcat installations I have (7.0.21 on my
Windows 32-bit machine, 7.0.19 on Ubuntu Server 32-bit test server and 7.0.16
on my test VM). On all of them Tomcat is cleanly installed, and in server.xml
default HTTP1.1 connector changed to

<Connector port="8080" protocol="org.apache.coyote.http11.Http11NioProtocol"
               connectionTimeout="20000"
               redirectPort="8443" />

Also, management user is added. All other settings are set to their defaults.

Do you run the sample under the debugger? If not, it works because my
workaround method validateRequest() which drops invalid requests, it shouldn't
be in the production code. Even with this, you can encounter the delayed
request processing, which is highly undesirable. The point of the sample I
provided is to put a breakpoint on TransportHandler.java:102 and inspect
HttpServletRequest.coyoteRequest object, and see incorrect headers, as in
screenshots I attached earlier. I will also comment out this workaround method
and attach the war, you will see that both connections and both tabs are closed
(error 204), which should never happen.

So, to reproduce the issue, you need to make Tomcat clean install, reconfigure
Connector in server.xml, open the project in IDE (we use IntelliJ IDEA for
development, project files are included), and set the breakpoint I mentioned.

Then, follow the steps I described earlier.

Thanks for your comments to the sample. THe class is TransportHandler because
it is not the servlet class itself (which is AtmosphereServlet, built-in
Atmosphere  library), but Atmosphere handler. I will also validate the web.xml,
however it is generated almost automatically by my IDE.

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

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org


Mime
View raw message