Am 01.05.2015 um 14:53 schrieb Mark Thomas:
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
Looks to be OK, when I revert that patch on the 8.0.22. NIO2 with TLS completes without delay.

Felix

Mark


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



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

Reply via email to