Details

      Description

      The last 4 nightly builds have failed with the same error sessionEndedLatch not counted down.

        Activity

        Hide
        abilan Artem Bilan added a comment -

        Looks like an issue with the Tomcat (8.0.30) from the latest IO and StackTrace is like this:

        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.startMessageBlock(WsRemoteEndpointImplBase.java:275)
        	at org.apache.tomcat.websocket.WsSession.sendCloseMessage(WsSession.java:584)
        	at org.apache.tomcat.websocket.WsSession.doClose(WsSession.java:488)
        	at org.apache.tomcat.websocket.WsSession.close(WsSession.java:455)
        	at org.springframework.web.socket.adapter.standard.StandardWebSocketSession.closeInternal(StandardWebSocketSession.java:217)
        	at org.springframework.web.socket.adapter.AbstractWebSocketSession.close(AbstractWebSocketSession.java:140)
        	at org.springframework.integration.websocket.IntegrationWebSocketContainer.closeSession(IntegrationWebSocketContainer.java:120)
        	at org.springframework.integration.websocket.ClientWebSocketContainer$IntegrationWebSocketConnectionManager.closeConnection(ClientWebSocketContainer.java:238)
        	at org.springframework.web.socket.client.ConnectionManagerSupport.stopInternal(ConnectionManagerSupport.java:158)
        	at org.springframework.integration.websocket.ClientWebSocketContainer$IntegrationWebSocketConnectionManager.stopInternal(ClientWebSocketContainer.java:201)
        	at org.springframework.web.socket.client.ConnectionManagerSupport.stop(ConnectionManagerSupport.java:144)
        	at org.springframework.integration.websocket.ClientWebSocketContainer.stop(ClientWebSocketContainer.java:159)
        	at org.springframework.integration.websocket.ClientWebSocketContainerTests.testClientWebSocketContainer(ClientWebSocketContainerTests.java:91)
        	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        	at java.lang.reflect.Method.invoke(Method.java:497)
        	at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:47)
        	at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
        	at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:44)
        	at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
        	at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:271)
        	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:70)
        	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50)
        	at org.junit.runners.ParentRunner$3.run(ParentRunner.java:238)
        	at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:63)
        	at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:236)
        	at org.junit.runners.ParentRunner.access$000(ParentRunner.java:53)
        	at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:229)
        	at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
        	at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)
        	at org.junit.runners.ParentRunner.run(ParentRunner.java:309)
        	at org.junit.runner.JUnitCore.run(JUnitCore.java:160)
        	at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:69)
        	at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:234)
        	at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:74)
        Caused by: java.io.IOException: Unable to write the complete message as the WebSocket connection has been closed
        	at org.apache.tomcat.websocket.WsSession.registerFuture(WsSession.java:658)
        	at org.apache.tomcat.websocket.FutureToSendHandler.get(FutureToSendHandler.java:92)
        	... 36 more
        

        See https://bz.apache.org/bugzilla/show_bug.cgi?id=58624 for more info. Especially the comment about "reopening".

        With Tomcat-8.0.29 that works well.

        Or we are downgrading in the IO, or should wait for the "real" fix to that bug.

        CC Andy Wilkinson

        Show
        abilan Artem Bilan added a comment - Looks like an issue with the Tomcat (8.0.30) from the latest IO and StackTrace is like this: 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.startMessageBlock(WsRemoteEndpointImplBase.java:275) at org.apache.tomcat.websocket.WsSession.sendCloseMessage(WsSession.java:584) at org.apache.tomcat.websocket.WsSession.doClose(WsSession.java:488) at org.apache.tomcat.websocket.WsSession.close(WsSession.java:455) at org.springframework.web.socket.adapter.standard.StandardWebSocketSession.closeInternal(StandardWebSocketSession.java:217) at org.springframework.web.socket.adapter.AbstractWebSocketSession.close(AbstractWebSocketSession.java:140) at org.springframework.integration.websocket.IntegrationWebSocketContainer.closeSession(IntegrationWebSocketContainer.java:120) at org.springframework.integration.websocket.ClientWebSocketContainer$IntegrationWebSocketConnectionManager.closeConnection(ClientWebSocketContainer.java:238) at org.springframework.web.socket.client.ConnectionManagerSupport.stopInternal(ConnectionManagerSupport.java:158) at org.springframework.integration.websocket.ClientWebSocketContainer$IntegrationWebSocketConnectionManager.stopInternal(ClientWebSocketContainer.java:201) at org.springframework.web.socket.client.ConnectionManagerSupport.stop(ConnectionManagerSupport.java:144) at org.springframework.integration.websocket.ClientWebSocketContainer.stop(ClientWebSocketContainer.java:159) at org.springframework.integration.websocket.ClientWebSocketContainerTests.testClientWebSocketContainer(ClientWebSocketContainerTests.java:91) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:497) at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:47) at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12) at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:44) at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17) at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:271) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:70) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50) at org.junit.runners.ParentRunner$3.run(ParentRunner.java:238) at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:63) at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:236) at org.junit.runners.ParentRunner.access$000(ParentRunner.java:53) at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:229) at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26) at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27) at org.junit.runners.ParentRunner.run(ParentRunner.java:309) at org.junit.runner.JUnitCore.run(JUnitCore.java:160) at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:69) at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:234) at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:74) Caused by: java.io.IOException: Unable to write the complete message as the WebSocket connection has been closed at org.apache.tomcat.websocket.WsSession.registerFuture(WsSession.java:658) at org.apache.tomcat.websocket.FutureToSendHandler.get(FutureToSendHandler.java:92) ... 36 more See https://bz.apache.org/bugzilla/show_bug.cgi?id=58624 for more info. Especially the comment about "reopening". With Tomcat-8.0.29 that works well. Or we are downgrading in the IO, or should wait for the "real" fix to that bug. CC Andy Wilkinson
        Hide
        awilkinson Andy Wilkinson added a comment -

        Thanks for tracking down the Tomcat issue, Artem. We can't downgrade Tomcat as we need 8.0.30 for another fix. Sadly, I think we'll have to live with this for now.

        This also affects SI 4.2, btw: https://build.spring.io/browse/PLATFORM-COM0-JOB1-2/test/case/190799438

        Show
        awilkinson Andy Wilkinson added a comment - Thanks for tracking down the Tomcat issue, Artem. We can't downgrade Tomcat as we need 8.0.30 for another fix. Sadly, I think we'll have to live with this for now. This also affects SI 4.2, btw: https://build.spring.io/browse/PLATFORM-COM0-JOB1-2/test/case/190799438
        Hide
        grussell Gary Russell added a comment -

        Let's @Ignore this test for now; I don't want to keep having to look at every nightly build to see if this is the only failure.

        Show
        grussell Gary Russell added a comment - Let's @Ignore this test for now; I don't want to keep having to look at every nightly build to see if this is the only failure.
        Hide
        abilan Artem Bilan added a comment -
        Show
        abilan Artem Bilan added a comment - The @Ignore pushed to master https://github.com/spring-projects/spring-integration/commit/69c98c4aadaea2fb0e109fe4896edeb1e6c2443b and cherry-picked to 4.2.x .
        Hide
        grussell Gary Russell added a comment -

        Great; thanks; we'll keep this open as a placeholder until tomcat is fixed.

        Show
        grussell Gary Russell added a comment - Great; thanks; we'll keep this open as a placeholder until tomcat is fixed.
        Hide
        bcoughlan Barry Coughlan added a comment -

        Changelog for 8.0.32 indicates that this is fixed:

        Fix: Fix a timing issue on session close that could result in an exception being thrown for an incomplete message even through the message was completed. (markt).

        Show
        bcoughlan Barry Coughlan added a comment - Changelog for 8.0.32 indicates that this is fixed: Fix: Fix a timing issue on session close that could result in an exception being thrown for an incomplete message even through the message was completed. (markt).
        Hide
        abilan Artem Bilan added a comment -

        Hello Barry Coughlan.

        Thank you for reaching us!

        No, unfortunately no, the issue is still there.
        I have filled the new bug on the matter https://bz.apache.org/bugzilla/show_bug.cgi?id=59014 with the hope it will be seen and reconsidered.

        Show
        abilan Artem Bilan added a comment - Hello Barry Coughlan . Thank you for reaching us! No, unfortunately no, the issue is still there. I have filled the new bug on the matter https://bz.apache.org/bugzilla/show_bug.cgi?id=59014 with the hope it will be seen and reconsidered.
        Hide
        abilan Artem Bilan added a comment -

        The Tomcat bug https://bz.apache.org/bugzilla/show_bug.cgi?id=59014 has been fixed for the 8.0.33 and 7.0.69.
        Local testing against Tomcat 8.0-SNAPSHOT confirms the fix.

        Their release is planned for the Middle of March.

        CC Andy Wilkinson

        Show
        abilan Artem Bilan added a comment - The Tomcat bug https://bz.apache.org/bugzilla/show_bug.cgi?id=59014 has been fixed for the 8.0.33 and 7.0.69. Local testing against Tomcat 8.0-SNAPSHOT confirms the fix. Their release is planned for the Middle of March. CC Andy Wilkinson

          People

          • Assignee:
            abilan Artem Bilan
            Reporter:
            grussell Gary Russell
          • Votes:
            1 Vote for this issue
            Watchers:
            5 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved: