On 01/05/2015 13:07, Felix Schumacher wrote: > Am 01.05.2015 um 01:47 schrieb Ognjen Blagojevic: >> On 29.4.2015 18:41, Mark Thomas wrote: >>> The proposed 8.0.22 release is: >>> [X] Broken - do not release >>> [ ] Stable - go ahead and release as 8.0.22 >> >> Tested .zip distribution on Windows 7 64-bit, Oracle JDK 1.8.0_45 and >> APR/native 1.1.33: >> >> - Crawled all links (except /manager, /host-manager and >> /examples/async*). No broken links found, except links to JavaDocs. >> >> - Smoke tests of BIO, NIO, NIO2 and APR, with and without TLS. Only >> NIO2+TLS fails. >> >> Connector configuration: >> >> <Connector port="449" >> protocol="org.apache.coyote.http11.Http11Nio2Protocol" SSLEnabled="true" >> maxThreads="150" scheme="https" secure="true" >> clientAuth="false" sslProtocol="TLS" >> keystoreFile="(snip).p12" keyAlias="(snip)" >> keystoreType="pkcs12" /> >> >> >> I smoke tested with this crawler: >> >> https://bz.apache.org/bugzilla/attachment.cgi?id=31184 >> >> >> >> I get in the logs some of those: >> >> 01-May-2015 01:29:59.631 SEVERE [http-apr-83-exec-7] >> org.apache.coyote.http11.AbstractHttp11Processor.endRequest Error >> finishing response >> org.apache.tomcat.jni.Error: 20005: An invalid socket was returned >> at org.apache.tomcat.jni.Socket.sendbb(Native Method) >> at >> org.apache.coyote.http11.InternalAprOutputBuffer.writeToSocket(InternalAprOutputBuffer.java:287) >> >> at >> org.apache.coyote.http11.InternalAprOutputBuffer.writeToSocket(InternalAprOutputBuffer.java:244) >> >> at >> org.apache.coyote.http11.InternalAprOutputBuffer.flushBuffer(InternalAprOutputBuffer.java:213) >> >> at >> org.apache.coyote.http11.AbstractOutputBuffer.endRequest(AbstractOutputBuffer.java:378) >> >> at >> org.apache.coyote.http11.AbstractHttp11Processor.endRequest(AbstractHttp11Processor.java:1800) >> >> at >> org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1143) >> >> at >> org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:668) >> >> at >> org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.doRun(AprEndpoint.java:2463) >> >> at >> org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.run(AprEndpoint.java:2452) >> >> at >> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) >> >> at >> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) >> >> at >> org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) >> >> at java.lang.Thread.run(Thread.java:745) >> >> >> And a lot of those: >> >> 01-May-2015 01:29:59.625 WARNING [http-nio2-84-exec-6] >> org.apache.tomcat.util.net.AbstractEndpoint.countDownConnection >> Incorrect connection count, multiple socket.close called on the same >> socket. >> 01-May-2015 01:29:59.627 WARNING [http-nio2-84-exec-4] >> org.apache.tomcat.util.net.AbstractEndpoint.countDownConnection >> Incorrect connection count, multiple socket.close called on the same >> socket. >> 01-May-2015 01:29:59.627 WARNING [http-nio2-84-exec-1] >> org.apache.tomcat.util.net.AbstractEndpoint.countDownConnection >> Incorrect connection count, multiple socket.close called on the same >> socket. >> >> >> I probably won't be able to do any more tests before Monday. > > I have done some tests with jmeter. Calling the "home" page of tomcat > through TLS with the different connectors BIO, NIO and NIO2. Using 100 > concurrent "clients" and letting each client repeat 1000 requests, I get > the following results: > > * NIO and BIO run without errors. > > * NIO2 seems to run OK at first, but after a while (last test the > "while" ended after 17900 requests) jmeters threads will not get a > response from tomcat. The test will continue when the clients timeout > after 60 seconds. > > I see no errors in tomcat logs. The access logs show a time jump of one > minute: > 192.168.178.20 - - [01/May/2015:13:57:39 +0200] "GET / HTTP/1.1" 200 11250 > 192.168.178.20 - - [01/May/2015:13:57:39 +0200] "GET / HTTP/1.1" 200 11250 > 192.168.178.20 - - [01/May/2015:13:57:39 +0200] "GET / HTTP/1.1" 200 > 11250 <--- JUMP > 192.168.178.20 - - [01/May/2015:13:58:33 +0200] "GET / HTTP/1.1" 200 > 11250 <--- > 192.168.178.20 - - [01/May/2015:13:58:33 +0200] "GET / HTTP/1.1" 200 11250 > 192.168.178.20 - - [01/May/2015:13:58:33 +0200] "GET / HTTP/1.1" 200 11250 > 192.168.178.20 - - [01/May/2015:13:58:33 +0200] "GET / HTTP/1.1" 200 11250 > > If I repeat the same tests with 8.0.21 the test will run without delay > (or timeout on jmeter side). > > Without encryption all connectors will complete the tests without delay > on 8.0.22.
This looks to be the culprit: http://svn.apache.org/viewvc?view=revision&revision=1672626 Mark --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org