Am 04.02.2016 um 23:44 schrieb Rainer Jung:
Am 03.02.2016 um 10:05 schrieb Mark Thomas:
The proposed Apache Tomcat 8.0.32 release is now available for voting.
The main changes since 8.0.30 are:
- Restore the default for mapperContextRootRedirectEnabled to true
- Update the packaged version of the Tomcat Native Library to 1.2.4
to pick up the Windows binaries that are based on OpenSSL 1.0.2e
- Expand session attribute filtering on load/unload to all managers
It can be obtained from:
https://dist.apache.org/repos/dist/dev/tomcat/tomcat-8/v8.0.32/
The Maven staging repo is:
https://repository.apache.org/content/repositories/orgapachetomcat-1063/
The svn tag is:
http://svn.apache.org/repos/asf/tomcat/tc8.0.x/tags/TOMCAT_8_0_32/
The proposed 8.0.32 release is:
[ ] Broken - do not release
[ ] Stable - go ahead and release as 8.0.32
Preliminary result: I see a hang in org.apache.tomcat.util.net.TestSsl
for NIO2. It hangs now since about 4 hours. Stack:
[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 <0xe6b5b818> (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 <0xe6b75ee0> (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 <0xe6b76748> (a java.io.InputStreamReader)
[junit] at sun.nio.cs.StreamDecoder.read0(StreamDecoder.java:126)
[junit] - locked <0xe6b76748> (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:159)
[junit] at
org.apache.tomcat.util.net.TestSsl.testRenegotiateWorks(TestSsl.java:133)
Due to truss the thread reads from the following connection
127.0.0.1.47878 127.0.0.1.47877 49152 0 49152 0
ESTABLISHED
127.0.0.1.47877 127.0.0.1.47878 49152 0 49306 0
ESTABLISHED
The thread dump does not contain any frames that belong to the client
(as far as I can judge).
This is somewhat reproducible for me using Java 1.7.0_80. It occurred 2
times during 10 iterations of only running TestSsl. With Java 1.0.8_72
it does not happen during 20 runs. So it seems to be a Java 7 SSL reneg
issue.
The stack is always the same as above.
One additional observation, maybe related: the access log for the test
running under Java 8 always contains 13 lines. When running under Java
7, even when the test does not hang, the file sometimes contains 12,
sometimes 13 lines. The "missing" line is one of the first two lines. In
the 13 lines case, these are both lines retrieving
/examples/servlets/servlet/HelloWorldExample. The first one 200-500 ms
duration, the second one much faster. In the 12 lines case, there's only
the slow line, the second fast line is missing.
I have a full log with log level FINE for a good and a bad case. The
first lines until
StandardWrapper.allocate Allocating non-STM instance
are the same.
Then the good case:
Time Thread Message
.296 exec-7 process Socket: Status in: [OPEN_READ], State out: [OPEN]
.341 exec-9 process Socket: Status in: [OPEN_READ], State out: [LONG]
.346 exec-10 parseRequestLine
.370 exec-10 process Socket: Status in: [OPEN_READ], State out: [OPEN]
.386 exec-1 parseRequestLine
and the bad case:
Time Thread Message
.213 exec-7 process Socket: Status in: [OPEN_READ], State out: [OPEN]
.248 exec-9 parseRequestLine
.270 exec-9 process Socket: Status in: [OPEN_READ], State out: [OPEN]
.340 exec-10 process Socket: Status in: [OPEN_READ], State out: [LONG]
hang
Looking at more cases, it seems the occurrence of the LONG state can
vary depending on exact timing and also the order in the log might not
always be the order of thing happening.
Here are more complete log snippets:
Good case:
14:55:38.259 exec-5 AbstractProtocol$AbstractConnectionHandler.process
Socket:
[Nio2Endpoint$Nio2SocketWrapper@1ef2ab4:SecureNio2Channel@19c57c7:sun.nio.ch.UnixAsynchronousSocketChannelImpl[connected
local=/127.0.0.1:56258 remote=/127.0.0.1:56259]], Status in:
[OPEN_READ], State out: [LONG]
14:55:38.264 exec-6 http11.AbstractNioInputBuffer.parseRequestLine
Received [GET /tester HTTP/1.1
]
14:55:38.266 exec-6 AbstractProtocol$AbstractConnectionHandler.process
Socket:
[Nio2Endpoint$Nio2SocketWrapper@1ef2ab4:SecureNio2Channel@19c57c7:sun.nio.ch.UnixAsynchronousSocketChannelImpl[connected
local=/127.0.0.1:56258 remote=/127.0.0.1:56259]], Status in:
[OPEN_READ], State out: [LONG]
14:55:38.288 exec-7
org.apache.tomcat.util.http.Parameters.setQueryStringEncoding Set query
string encoding to UTF-8
14:55:38.289 exec-7 CoyoteAdapter.parsePathParameters The variable
[uriBC] has value [/tester]
14:55:38.290 exec-7 CoyoteAdapter.parsePathParameters The variable
[semicolon] has value [-1]
14:55:38.290 exec-7 CoyoteAdapter.parsePathParameters The variable [enc]
has value [utf-8]
14:55:38.291 exec-7 realm.RealmBase.findSecurityConstraints No
applicable constraints defined
14:55:38.292 exec-7 core.StandardWrapper.allocate Allocating non-STM
instance
14:55:38.296 exec-7 AbstractProtocol$AbstractConnectionHandler.process
Socket:
[Nio2Endpoint$Nio2SocketWrapper@1ef2ab4:SecureNio2Channel@19c57c7:sun.nio.ch.UnixAsynchronousSocketChannelImpl[connected
local=/127.0.0.1:56258 remote=/127.0.0.1:56259]], Status in:
[OPEN_READ], State out: [OPEN]
14:55:38.341 exec-9 AbstractProtocol$AbstractConnectionHandler.process
Socket:
[Nio2Endpoint$Nio2SocketWrapper@1ef2ab4:SecureNio2Channel@19c57c7:sun.nio.ch.UnixAsynchronousSocketChannelImpl[connected
local=/127.0.0.1:56258 remote=/127.0.0.1:56259]], Status in:
[OPEN_READ], State out: [LONG]
14:55:38.346 exec-10 http11.AbstractNioInputBuffer.parseRequestLine
Received [GET /tester HTTP/1.1
Host: localhost
Connection: Keep-Alive
]
14:55:38.348 exec-10 CoyoteAdapter.parsePathParameters The variable
[uriBC] has value [/tester]
14:55:38.348 exec-10 CoyoteAdapter.parsePathParameters The variable
[semicolon] has value [-1]
14:55:38.348 exec-10 CoyoteAdapter.parsePathParameters The variable
[enc] has value [utf-8]
14:55:38.349 exec-10 realm.RealmBase.findSecurityConstraints No
applicable constraints defined
14:55:38.370 exec-10 AbstractProtocol$AbstractConnectionHandler.process
Socket:
[Nio2Endpoint$Nio2SocketWrapper@1ef2ab4:SecureNio2Channel@19c57c7:sun.nio.ch.UnixAsynchronousSocketChannelImpl[connected
local=/127.0.0.1:56258 remote=/127.0.0.1:56259]], Status in:
[OPEN_READ], State out: [OPEN]
14:55:38.386 exec-1 http11.AbstractNioInputBuffer.parseRequestLine
Received [GET /tester HTTP/1.1
Host: localhost
Connection: Keep-Alive
]
14:55:38.387 exec-1 CoyoteAdapter.parsePathParameters The variable
[uriBC] has value [/tester]
14:55:38.387 exec-1 CoyoteAdapter.parsePathParameters The variable
[semicolon] has value [-1]
14:55:38.388 exec-1 CoyoteAdapter.parsePathParameters The variable [enc]
has value [utf-8]
14:55:38.388 exec-1 realm.RealmBase.findSecurityConstraints No
applicable constraints defined
Bad case:
14:48:35.193 exec-5 AbstractProtocol$AbstractConnectionHandler.process
Socket:
[Nio2Endpoint$Nio2SocketWrapper@90b907:SecureNio2Channel@11ae512:sun.nio.ch.UnixAsynchronousSocketChannelImpl[connected
local=/127.0.0.1:56236 remote=/127.0.0.1:56237]], Status in:
[OPEN_READ], State out: [LONG]
14:48:35.197 exec-6 http11.AbstractNioInputBuffer.parseRequestLine
Received [GET /tester HTTP/1.1
]
14:48:35.198 exec-6 AbstractProtocol$AbstractConnectionHandler.process
Socket:
[Nio2Endpoint$Nio2SocketWrapper@90b907:SecureNio2Channel@11ae512:sun.nio.ch.UnixAsynchronousSocketChannelImpl[connected
local=/127.0.0.1:56236 remote=/127.0.0.1:56237]], Status in:
[OPEN_READ], State out: [LONG]
14:48:35.205 exec-7
org.apache.tomcat.util.http.Parameters.setQueryStringEncoding Set query
string encoding to UTF-8
14:48:35.206 exec-7 CoyoteAdapter.parsePathParameters The variable
[uriBC] has value [/tester]
14:48:35.206 exec-7 CoyoteAdapter.parsePathParameters The variable
[semicolon] has value [-1]
14:48:35.206 exec-7 CoyoteAdapter.parsePathParameters The variable [enc]
has value [utf-8]
14:48:35.208 exec-7 realm.RealmBase.findSecurityConstraints No
applicable constraints defined
14:48:35.208 exec-7 core.StandardWrapper.allocate Allocating non-STM
instance
14:48:35.213 exec-7 AbstractProtocol$AbstractConnectionHandler.process
Socket:
[Nio2Endpoint$Nio2SocketWrapper@90b907:SecureNio2Channel@11ae512:sun.nio.ch.UnixAsynchronousSocketChannelImpl[connected
local=/127.0.0.1:56236 remote=/127.0.0.1:56237]], Status in:
[OPEN_READ], State out: [OPEN]
14:48:35.248 exec-9 http11.AbstractNioInputBuffer.parseRequestLine
Received [GET /tester HTTP/1.1
Host: localhost
Connection: Keep-Alive
]
14:48:35.249 exec-9 CoyoteAdapter.parsePathParameters The variable
[uriBC] has value [/tester]
14:48:35.250 exec-9 CoyoteAdapter.parsePathParameters The variable
[semicolon] has value [-1]
14:48:35.250 exec-9 CoyoteAdapter.parsePathParameters The variable [enc]
has value [utf-8]
14:48:35.251 exec-9 realm.RealmBase.findSecurityConstraints No
applicable constraints defined
14:48:35.270 exec-9 AbstractProtocol$AbstractConnectionHandler.process
Socket:
[Nio2Endpoint$Nio2SocketWrapper@90b907:SecureNio2Channel@11ae512:sun.nio.ch.UnixAsynchronousSocketChannelImpl[connected
local=/127.0.0.1:56236 remote=/127.0.0.1:56237]], Status in:
[OPEN_READ], State out: [OPEN]
14:48:35.340 exec-10 AbstractProtocol$AbstractConnectionHandler.process
Socket:
[Nio2Endpoint$Nio2SocketWrapper@90b907:SecureNio2Channel@11ae512:sun.nio.ch.UnixAsynchronousSocketChannelImpl[connected
local=/127.0.0.1:56236 remote=/127.0.0.1:56237]], Status in:
[OPEN_READ], State out: [LONG]
then hangs.
Regards,
Rainer
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org