Summary: | NioConnector caches get corrupted on concurrent comet close | ||
---|---|---|---|
Product: | Tomcat 7 | Reporter: | Nikita Zyulyaev <zyulyaev> |
Component: | Connectors | Assignee: | Tomcat Developers Mailing List <dev> |
Status: | RESOLVED FIXED | ||
Severity: | major | CC: | cl, uvi |
Priority: | P2 | ||
Version: | 7.0.47 | ||
Target Milestone: | --- | ||
Hardware: | PC | ||
OS: | All |
Description
Nikita Zyulyaev
2014-12-11 11:20:44 UTC
We can confirm this and were able to reproduce it as well. A fix would be highly appreciated because we also run into cases where actual responses were mixed up. We consider this to be very serious in certain environments. Please make sure this is reproducible on Tomcat 7.0.57, the most recent release of the 7.0.x branch. What you describe probably hasn't changed since 7.0.47, but please double-check. (In reply to Christopher Schultz from comment #2) > Please make sure this is reproducible on Tomcat 7.0.57, the most recent > release of the 7.0.x branch. What you describe probably hasn't changed since > 7.0.47, but please double-check. Yes, the issue can be reproduced on either 7.0.47, 7.0.55 or 7.0.57 versions of Tomcat. (In reply to cl from comment #1) > We can confirm this and were able to reproduce it as well. > A fix would be highly appreciated because we also run into cases where > actual responses were mixed up. > We consider this to be very serious in certain environments. If you are interested in a quick workaround, you can disable bufferPool and keyCache by adding socket.bufferPool="0" and socket.keyCache="0" to the Connector tag in your server.xml. This will fix the symptoms. I have committed a fix for this to trunk (Tomcat 9.0.x). Are you able to check out trunk from svn, build it and comfirm whether or not this fixes the issue for you? (In reply to Mark Thomas from comment #5) > I have committed a fix for this to trunk (Tomcat 9.0.x). Are you able to > check out trunk from svn, build it and comfirm whether or not this fixes the > issue for you? I'm afraid we are not able to run our application on Tomcat 9.0.x. Please port your changes to 7.0.x branch. Are you able to build 7.0.x from svn and test against that? (In reply to Mark Thomas from comment #7) > Are you able to build 7.0.x from svn and test against that? Of course. Great - not all users are able/willing to do that. I'll get the back-ports done now. Fix applied to 8.0.x for 8.0.16 onwards and to 7.0.x for 7.0.58 onwards. You should be good to build 7.0.x from svn trunk and test now. (In reply to Mark Thomas from comment #10) > Fix applied to 8.0.x for 8.0.16 onwards and to 7.0.x for 7.0.58 onwards. > > You should be good to build 7.0.x from svn trunk and test now. I faced a very odd problem running 7.0.58. org/apache/tomcat/util/http/ValuesEnumerator was not included in the tomcat-coyote.jar during ant build. But I applied your changes to the 7.0.47 and they worked successfully. Not sure what was going on with ValuesEnumerator. Thanks for going the extra mile and working around it. Great to hear that the proposed fix did indeed work. It will be in the next release. (In reply to Nikita Zyulyaev from comment #11) > (In reply to Mark Thomas from comment #10) > > Fix applied to 8.0.x for 8.0.16 onwards and to 7.0.x for 7.0.58 onwards. > > > > You should be good to build 7.0.x from svn trunk and test now. > > I faced a very odd problem running 7.0.58. > org/apache/tomcat/util/http/ValuesEnumerator was not included in the > tomcat-coyote.jar during ant build. > But I applied your changes to the 7.0.47 and they worked successfully. It works for me. I did a clean build and that class was successfully compiled and packed into tomcat-coyote.jar. I expected to find ValuesEnumerator.java, but that package-accessible class is actually defined in MimeHeaders.java. That code is old: the last change to MimeHeaders.java was 2,5 years ago. (In reply to Mark Thomas from comment #10) > Fix applied to 8.0.x for 8.0.16 onwards and to 7.0.x for 7.0.58 onwards. Fixed in Tomcat 6 as part of bug 57943 and will be in 6.0.45 onwards. (r1710473) |