tomcat-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Konstantin Kolinko <knst.koli...@gmail.com>
Subject Re: [VOTE] Release Apache Tomcat 7.0.52
Date Fri, 14 Feb 2014 17:34:43 GMT
2014-02-13 12:17 GMT+04:00 Violeta Georgieva <milesg78@gmail.com>:
> The proposed Apache Tomcat 7.0.52 release is now available for voting.
>
> It can be obtained from:
> https://dist.apache.org/repos/dist/dev/tomcat/tomcat-7/v7.0.52/
> The Maven staging repo is:
> https://repository.apache.org/content/repositories/orgapachetomcat-1007/
> The svn tag is:
> http://svn.apache.org/repos/asf/tomcat/tc7.0.x/tags/TOMCAT_7_0_52/
>
> The proposed 7.0.52 release is:
> [ ] Broken - do not release
> [x] Stable - go ahead and release as 7.0.52 Stable
>

Smoke test and my apps are ok.

Testsuite run on Win7 with 32-bit JDK 7u51 and 6u45, with BIO,NIO,APR
connectors.

Note that to run the tests with 6u45 you need to undefine
"java.7.home". I added a comment on this in r1568348.

Results: all tests OK (run once with all connectors x two JDKs),
except the following ones.

1. org.apache.catalina.startup.TestHostConfigAutomaticDeployment
fails consistently with all connectors when running with JDK 6u45.
It runs successfully with 7u51.
The failures:

[[[
Testsuite: org.apache.catalina.startup.TestHostConfigAutomaticDeployment
Tests run: 137, Failures: 3, Errors: 0, Skipped: 0, Time elapsed: 49,956 sec

Testcase: testModifyXmlExtwarUpdateExtwar took 0,251 sec
    FAILED
expected:<[stopstart]> but was:<[]>
junit.framework.AssertionFailedError: expected:<[stopstart]> but was:<[]>
    at org.apache.catalina.startup.TestHostConfigAutomaticDeployment.doTestModify(TestHostConfigAutomaticDeployment.java:1220)
    at org.apache.catalina.startup.TestHostConfigAutomaticDeployment.doTestModify(TestHostConfigAutomaticDeployment.java:1079)
    at org.apache.catalina.startup.TestHostConfigAutomaticDeployment.testModifyXmlExtwarUpdateExtwar(TestHostConfigAutomaticDeployment.java:1004)

Testcase: testModifyWarUpdateWar took 0,196 sec
    FAILED
expected not same
junit.framework.AssertionFailedError: expected not same
    at org.apache.catalina.startup.TestHostConfigAutomaticDeployment.doTestModify(TestHostConfigAutomaticDeployment.java:1222)
    at org.apache.catalina.startup.TestHostConfigAutomaticDeployment.doTestModify(TestHostConfigAutomaticDeployment.java:1079)
    at org.apache.catalina.startup.TestHostConfigAutomaticDeployment.testModifyWarUpdateWar(TestHostConfigAutomaticDeployment.java:966)

Testcase: testModifyXmlWarUpdateWar took 0,195 sec
    FAILED
expected:<[stopstart]> but was:<[]>
junit.framework.AssertionFailedError: expected:<[stopstart]> but was:<[]>
    at org.apache.catalina.startup.TestHostConfigAutomaticDeployment.doTestModify(TestHostConfigAutomaticDeployment.java:1220)
    at org.apache.catalina.startup.TestHostConfigAutomaticDeployment.doTestModify(TestHostConfigAutomaticDeployment.java:1079)
    at org.apache.catalina.startup.TestHostConfigAutomaticDeployment.testModifyXmlWarUpdateWar(TestHostConfigAutomaticDeployment.java:1046)
]]]

2. org.apache.tomcat.websocket.TestWsWebSocketContainer
This was run with JDK 7u51. This showed a failure on the first run,
and I rerun t 24 times.
In 25 runs the following errors happened. These are rare and happened
only once or twice.

1) With BIO connector it failed once,

Tests run: 25, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 41,336 sec
[[[
Testcase: testSmallTextBufferClientTextMessage took 0,199 sec
    Caused an ERROR
java.util.concurrent.ExecutionException: java.io.IOException: Unable
to write the complete message as the WebSocket connection has been
closed
java.io.IOException: java.util.concurrent.ExecutionException:
java.io.IOException: Unable to write the complete message as the
WebSocket connection has been closed
    at org.apache.tomcat.websocket.WsRemoteEndpointImplBase.sendPartialString(WsRemoteEndpointImplBase.java:219)
    at org.apache.tomcat.websocket.WsRemoteEndpointImplBase.sendString(WsRemoteEndpointImplBase.java:162)
    at org.apache.tomcat.websocket.WsRemoteEndpointBasic.sendText(WsRemoteEndpointBasic.java:37)
    at org.apache.tomcat.websocket.TestWsWebSocketContainer.doBufferTest(TestWsWebSocketContainer.java:258)
    at org.apache.tomcat.websocket.TestWsWebSocketContainer.testSmallTextBufferClientTextMessage(TestWsWebSocketContainer.java:157)
Caused by: java.util.concurrent.ExecutionException:
java.io.IOException: Unable to write the complete message as the
WebSocket connection has been closed
    at org.apache.tomcat.websocket.FutureToSendHandler.get(FutureToSendHandler.java:102)
    at org.apache.tomcat.websocket.WsRemoteEndpointImplBase.sendPartialString(WsRemoteEndpointImplBase.java:214)
Caused by: java.io.IOException: Unable to write the complete message
as the WebSocket connection has been closed
    at org.apache.tomcat.websocket.WsSession.doClose(WsSession.java:423)
    at org.apache.tomcat.websocket.WsSession.close(WsSession.java:394)
    at org.apache.tomcat.websocket.WsFrameClient.close(WsFrameClient.java:82)
    at org.apache.tomcat.websocket.WsFrameClient.access$300(WsFrameClient.java:26)
    at org.apache.tomcat.websocket.WsFrameClient$WsFrameClientCompletionHandler.completed(WsFrameClient.java:111)
    at org.apache.tomcat.websocket.WsFrameClient$WsFrameClientCompletionHandler.completed(WsFrameClient.java:96)
    at sun.nio.ch.Invoker.invokeUnchecked(Invoker.java:126)
    at sun.nio.ch.Invoker$2.run(Invoker.java:206)
    at sun.nio.ch.AsynchronousChannelGroupImpl$1.run(AsynchronousChannelGroupImpl.java:112)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
    at java.lang.Thread.run(Thread.java:744)
]]]

2) With APR it failed once:

Tests run: 25, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 105,758 sec
[[[
Testcase: testMaxMessageSize03 took 5,324 sec
    Caused an ERROR
The HTTP request to initiate the WebSocket connection failed
javax.websocket.DeploymentException: The HTTP request to initiate the
WebSocket connection failed
    at org.apache.tomcat.websocket.WsWebSocketContainer.connectToServer(WsWebSocketContainer.java:373)
    at org.apache.tomcat.websocket.WsWebSocketContainer.connectToServer(WsWebSocketContainer.java:244)
    at org.apache.tomcat.websocket.TestWsWebSocketContainer.connectToEchoServer(TestWsWebSocketContainer.java:754)
    at org.apache.tomcat.websocket.TestWsWebSocketContainer.doMaxMessageSize(TestWsWebSocketContainer.java:882)
    at org.apache.tomcat.websocket.TestWsWebSocketContainer.testMaxMessageSize03(TestWsWebSocketContainer.java:839)
Caused by: java.util.concurrent.TimeoutException
    at sun.nio.ch.PendingFuture.get(PendingFuture.java:197)
    at org.apache.tomcat.websocket.WsWebSocketContainer.processResponse(WsWebSocketContainer.java:599)
    at org.apache.tomcat.websocket.WsWebSocketContainer.connectToServer(WsWebSocketContainer.java:343)
]]]

3) With NIO connector there were no "failed" tests, but the test hung twice.

I used jstack to get a thread dump, which indicated a deadlock.
The test was aborted by Ctrl+C and subsequent APR tests were not run.

The deadlocks:
a)
[[[
Found one Java-level deadlock:
=============================
"http-nio-127.0.0.1-auto-4-exec-6":
  waiting to lock monitor 0x05645e7c (object 0x243706e0, a java.lang.Object),
  which is held by "localhost-startStop-1"
"localhost-startStop-1":
  waiting to lock monitor 0x056463bc (object 0x2436fa28, a java.lang.Object),
  which is held by "http-nio-127.0.0.1-auto-4-exec-6"

Java stack information for the threads listed above:
===================================================
"http-nio-127.0.0.1-auto-4-exec-6":
    at org.apache.tomcat.websocket.WsRemoteEndpointImplBase.startMessage(WsRemoteEndpointImplBase.java:258)
    - waiting to lock <0x243706e0> (a java.lang.Object)
    at org.apache.tomcat.websocket.WsRemoteEndpointImplBase$TextMessageSendHandler.write(WsRemoteEndpointImplBase.java:672)
    at org.apache.tomcat.websocket.WsRemoteEndpointImplBase$TextMessageSendHandler.onResult(WsRemoteEndpointImplBase.java:688)
    at org.apache.tomcat.websocket.WsRemoteEndpointImplBase.endMessage(WsRemoteEndpointImplBase.java:305)
    at org.apache.tomcat.websocket.WsRemoteEndpointImplBase$EndMessageHandler.onResult(WsRemoteEndpointImplBase.java:453)
    at org.apache.tomcat.websocket.server.WsRemoteEndpointImplServer.clearHandler(WsRemoteEndpointImplServer.java:206)
    at org.apache.tomcat.websocket.server.WsRemoteEndpointImplServer.onWritePossible(WsRemoteEndpointImplServer.java:102)
    at org.apache.tomcat.websocket.server.WsHttpUpgradeHandler$WsWriteListener.onWritePossible(WsHttpUpgradeHandler.java:240)
    at org.apache.coyote.http11.upgrade.AbstractServletOutputStream.onWritePossible(AbstractServletOutputStream.java:174)
    - locked <0x2436fa28> (a java.lang.Object)
    at org.apache.coyote.http11.upgrade.AbstractProcessor.upgradeDispatch(AbstractProcessor.java:94)
    at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:605)
    at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1721)
    at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1675)
    - locked <0x2434efb0> (a java.lang.Object)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
    at java.lang.Thread.run(Thread.java:744)
"localhost-startStop-1":
    at org.apache.coyote.http11.upgrade.AbstractServletOutputStream.write(AbstractServletOutputStream.java:91)
    - waiting to lock <0x2436fa28> (a java.lang.Object)
    at org.apache.tomcat.websocket.server.WsRemoteEndpointImplServer.onWritePossible(WsRemoteEndpointImplServer.java:94)
    at org.apache.tomcat.websocket.server.WsRemoteEndpointImplServer.doWrite(WsRemoteEndpointImplServer.java:81)
    at org.apache.tomcat.websocket.WsRemoteEndpointImplBase.writeMessagePart(WsRemoteEndpointImplBase.java:378)
    at org.apache.tomcat.websocket.WsRemoteEndpointImplBase.startMessage(WsRemoteEndpointImplBase.java:279)
    - locked <0x243706e0> (a java.lang.Object)
    at org.apache.tomcat.websocket.WsRemoteEndpointImplBase.startMessageBlock(WsRemoteEndpointImplBase.java:233)
    at org.apache.tomcat.websocket.WsSession.sendCloseMessage(WsSession.java:483)
    at org.apache.tomcat.websocket.WsSession.doClose(WsSession.java:417)
    - locked <0x243712b8> (a java.lang.Object)
    at org.apache.tomcat.websocket.WsSession.close(WsSession.java:394)
    at org.apache.tomcat.websocket.WsWebSocketContainer.destroy(WsWebSocketContainer.java:823)
    at org.apache.tomcat.websocket.server.WsContextListener.contextDestroyed(WsContextListener.java:49)
    at org.apache.catalina.core.StandardContext.listenerStop(StandardContext.java:5014)
    at org.apache.catalina.core.StandardContext.stopInternal(StandardContext.java:5659)
    - locked <0x241ac8f0> (a org.apache.catalina.core.StandardContext)
    at org.apache.catalina.util.LifecycleBase.stop(LifecycleBase.java:232)
    - locked <0x241ac8f0> (a org.apache.catalina.core.StandardContext)
    at org.apache.catalina.core.ContainerBase$StopChild.call(ContainerBase.java:1575)
    at org.apache.catalina.core.ContainerBase$StopChild.call(ContainerBase.java:1564)
    at java.util.concurrent.FutureTask.run(FutureTask.java:262)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
    at java.lang.Thread.run(Thread.java:744)

Found 1 deadlock.
]]]

b)
[[[
Found one Java-level deadlock:
=============================
"http-nio-127.0.0.1-auto-4-exec-5":
  waiting to lock monitor 0x00e05544 (object 0x2436bbf8, a java.lang.Object),
  which is held by "localhost-startStop-1"
"localhost-startStop-1":
  waiting to lock monitor 0x057e739c (object 0x2436af40, a java.lang.Object),
  which is held by "http-nio-127.0.0.1-auto-4-exec-5"

Java stack information for the threads listed above:
===================================================
"http-nio-127.0.0.1-auto-4-exec-5":
    at org.apache.tomcat.websocket.WsRemoteEndpointImplBase.startMessage(WsRemoteEndpointImplBase.java:258)
    - waiting to lock <0x2436bbf8> (a java.lang.Object)
    at org.apache.tomcat.websocket.WsRemoteEndpointImplBase$TextMessageSendHandler.write(WsRemoteEndpointImplBase.java:672)
    at org.apache.tomcat.websocket.WsRemoteEndpointImplBase$TextMessageSendHandler.onResult(WsRemoteEndpointImplBase.java:688)
    at org.apache.tomcat.websocket.WsRemoteEndpointImplBase.endMessage(WsRemoteEndpointImplBase.java:305)
    at org.apache.tomcat.websocket.WsRemoteEndpointImplBase$EndMessageHandler.onResult(WsRemoteEndpointImplBase.java:453)
    at org.apache.tomcat.websocket.server.WsRemoteEndpointImplServer.clearHandler(WsRemoteEndpointImplServer.java:206)
    at org.apache.tomcat.websocket.server.WsRemoteEndpointImplServer.onWritePossible(WsRemoteEndpointImplServer.java:102)
    at org.apache.tomcat.websocket.server.WsHttpUpgradeHandler$WsWriteListener.onWritePossible(WsHttpUpgradeHandler.java:240)
    at org.apache.coyote.http11.upgrade.AbstractServletOutputStream.onWritePossible(AbstractServletOutputStream.java:174)
    - locked <0x2436af40> (a java.lang.Object)
    at org.apache.coyote.http11.upgrade.AbstractProcessor.upgradeDispatch(AbstractProcessor.java:94)
    at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:605)
    at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1721)
    at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1675)
    - locked <0x24343540> (a java.lang.Object)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
    at java.lang.Thread.run(Thread.java:744)
"localhost-startStop-1":
    at org.apache.coyote.http11.upgrade.AbstractServletOutputStream.write(AbstractServletOutputStream.java:91)
    - waiting to lock <0x2436af40> (a java.lang.Object)
    at org.apache.tomcat.websocket.server.WsRemoteEndpointImplServer.onWritePossible(WsRemoteEndpointImplServer.java:94)
    at org.apache.tomcat.websocket.server.WsRemoteEndpointImplServer.doWrite(WsRemoteEndpointImplServer.java:81)
    at org.apache.tomcat.websocket.WsRemoteEndpointImplBase.writeMessagePart(WsRemoteEndpointImplBase.java:378)
    at org.apache.tomcat.websocket.WsRemoteEndpointImplBase.startMessage(WsRemoteEndpointImplBase.java:279)
    - locked <0x2436bbf8> (a java.lang.Object)
    at org.apache.tomcat.websocket.WsRemoteEndpointImplBase.startMessageBlock(WsRemoteEndpointImplBase.java:233)
    at org.apache.tomcat.websocket.WsSession.sendCloseMessage(WsSession.java:483)
    at org.apache.tomcat.websocket.WsSession.doClose(WsSession.java:417)
    - locked <0x2436c7d0> (a java.lang.Object)
    at org.apache.tomcat.websocket.WsSession.close(WsSession.java:394)
    at org.apache.tomcat.websocket.WsWebSocketContainer.destroy(WsWebSocketContainer.java:823)
    at org.apache.tomcat.websocket.server.WsContextListener.contextDestroyed(WsContextListener.java:49)
    at org.apache.catalina.core.StandardContext.listenerStop(StandardContext.java:5014)
    at org.apache.catalina.core.StandardContext.stopInternal(StandardContext.java:5659)
    - locked <0x241a6948> (a org.apache.catalina.core.StandardContext)
    at org.apache.catalina.util.LifecycleBase.stop(LifecycleBase.java:232)
    - locked <0x241a6948> (a org.apache.catalina.core.StandardContext)
    at org.apache.catalina.core.ContainerBase$StopChild.call(ContainerBase.java:1575)
    at org.apache.catalina.core.ContainerBase$StopChild.call(ContainerBase.java:1564)
    at java.util.concurrent.FutureTask.run(FutureTask.java:262)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
    at java.lang.Thread.run(Thread.java:744)

Found 1 deadlock.
]]]

4) There are a number of the following messages for this test,
regardless of connector type:

{date,time} org.apache.catalina.loader.WebappClassLoader clearReferencesThreads
SEVERE: The web application [] appears to have started a thread named
[http-bio-127.0.0.1-auto-4-exec-1] but has failed to stop it. This is
very likely to create a memory leak.


I think these issues are not showstoppers, but they may need further
investigation.

Best regards,
Konstantin Kolinko

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


Mime
View raw message