You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by bu...@apache.org on 2018/05/07 15:05:02 UTC

[Bug 56448] Implement a robust solution for client initiated SSL renegotiation with NIO

https://bz.apache.org/bugzilla/show_bug.cgi?id=56448

--- Comment #3 from Rainer Jung <ra...@kippdata.de> ---
Observed a hanging test for NIO2 during 8.0.52 unit test runs on Solaris 10.
Hangs seem to happen sporadically, observed for .32, .43, .47-.52.

Thread dump for 8.0.52 :

    [junit] "main" prio=3 tid=0x0002a800 nid=0x2 runnable [0xfdf7d000]
    [junit]    java.lang.Thread.State: RUNNABLE
    [junit]     at java.net.SocketInputStream.socketRead0(Native Method)
    [junit]     at java.net.SocketInputStream.read(SocketInputStream.java:152)
    [junit]     at java.net.SocketInputStream.read(SocketInputStream.java:122)
    [junit]     at sun.security.ssl.InputRecord.readFully(InputRecord.java:442)
    [junit]     at sun.security.ssl.InputRecord.read(InputRecord.java:480)
    [junit]     at
sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:934)
    [junit]     - locked <0xe6d5ab68> (a java.lang.Object)
    [junit]     at
sun.security.ssl.SSLSocketImpl.readDataRecord(SSLSocketImpl.java:891)
    [junit]     at
sun.security.ssl.AppInputStream.read(AppInputStream.java:102)
    [junit]     - locked <0xe6fa2b00> (a sun.security.ssl.AppInputStream)
    [junit]     at sun.nio.cs.StreamDecoder.readBytes(StreamDecoder.java:283)
    [junit]     at sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:325)
    [junit]     at sun.nio.cs.StreamDecoder.read(StreamDecoder.java:177)
    [junit]     - locked <0xe6fab7b8> (a java.io.InputStreamReader)
    [junit]     at sun.nio.cs.StreamDecoder.read0(StreamDecoder.java:126)
    [junit]     - locked <0xe6fab7b8> (a java.io.InputStreamReader)
    [junit]     at sun.nio.cs.StreamDecoder.read(StreamDecoder.java:112)
    [junit]     at java.io.InputStreamReader.read(InputStreamReader.java:168)
    [junit]     at
org.apache.tomcat.util.net.TestSsl.doRequest(TestSsl.java:157)
    [junit]     at
org.apache.tomcat.util.net.TestSsl.testRenegotiateWorks(TestSsl.java:131)
...

From the access log one request plus one reneg seems to have worked:

127.0.0.1 - - [07/May/2018:16:17:45 +0200] "GET /tester HTTP/1.1" 200 2
http-nio2-127.0.0.1-auto-3-exec-5 9
127.0.0.1 - - [07/May/2018:16:17:45 +0200] "GET /tester HTTP/1.1" 200 2
http-nio2-127.0.0.1-auto-3-exec-8 7

but then it hanged until killing it (waited for more than 30 minutes before
observing and killing).

Log lines before hang do not give additional insight:

    [junit] 07-May-2018 16:17:45.528 INFO [main]
org.apache.catalina.startup.LoggingBaseTest.setUp Starting test case
[testRenegotiateWorks]
    [junit] 07-May-2018 16:17:45.545 INFO [main]
org.apache.coyote.AbstractProtocol.init Initializing ProtocolHandler
["http-nio2-127.0.0.1-auto-3"]
    [junit] 07-May-2018 16:17:45.626 INFO [main]
org.apache.catalina.core.StandardService.startInternal Starting service Tomcat
    [junit] 07-May-2018 16:17:45.627 INFO [main]
org.apache.catalina.core.StandardEngine.startInternal Starting Servlet Engine:
Apache Tomcat/8.0.52
    [junit] 07-May-2018 16:17:45.679 INFO [main]
org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler
["http-nio2-127.0.0.1-auto-3-47468"]

Regards,

Rainer

-- 
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