Hi,
We are facing some random concurrency issues in our tomcat environments.
1. We have a web application deployed on Tomcat that handles requests from
browsers (AJAX and non-AJAX) and also from an applet.
2. The requests send by the browser and always gets and posts (with
application/x-www-form-urlencoded format)
3. The requests made by the applet are compressed and send in binary, they
are handled by a different Servlet that reads the content by executing
request.getInputStream().
4. Randomly, mainly after opening the applet from the current session or
in another session executed on the same server (which send some requests in
parallel) requests send from the browser arrives to the server with an empty
request.getParameterMap()
5. We have reviewed that the request was well formed when it leaves the
browser and also we are able to monitor it with TCP Dump and see that arrives
correctly to tomcat.
6. We have introduced a filter on the first position of the filter chain:
org.apache.catalina.filters.RequestDumperFilter and we have validated that at
this point we have already lost all of the parameters
7. If we try to execute the request.getInputStream() for this problematic
requests what we see is that the byte array that returns belongs to another
request made before to the server.
8. If we re-submit the same request after, it works fine. They don't have
any kind of special character or exceed a certain length.
9. Environment configuration:
Httpd apache server on the front-end v. 2.2 connected to apache tomcat using
AJP connector 1.3
Apache tomcat 7.0.56
O.S. - Oracle linux
10. Sometimes we are able to reproduce the issue on a eclipse-tomcat
environment using http connector and we have validated that the flag used by
the class org.apache.catalina.connector.Request parametersParsed is set to true.
Do you have any kind of suggestions on how to further investigate the issue?
Many thanks and regards,
Miguel A. Roldán.
________________________________
"This e-mail, any associated files and the information contained in them are
confidential and is intended for the addressee(s) only. If you have received
this message in error please notify the originator and delete the email
immediately. The unauthorised use, disclosure, copying or alteration of this
message is strictly forbidden. E-mails to and from the company are monitored
for operational reasons and in accordance with lawful business practices. Any
opinions expressed are those of the individual and do not necessarily represent
the views of the company. The company does not conclude contracts by email and
all negotiations are subject to contract. We make every effort to maintain our
network free from computer viruses but accept no responsibility for any viruses
which might be transferred by this e-mail."