[Bug 57489] java.util.concurrent.ExecutionException: java.io.IOException: Key must be cancelled
https://bz.apache.org/bugzilla/show_bug.cgi?id=57489 --- Comment #25 from Mark Thomas--- This has been fixed in 9.0.x although the connector refactoring means that a direct back-port may not be possible. Note that two tests were removed because they were invalid as per section 2.1.5 of the WebSocket 1.1 specification. -- You are receiving this mail because: You are the assignee for the bug. - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
[Bug 57489] java.util.concurrent.ExecutionException: java.io.IOException: Key must be cancelled
https://bz.apache.org/bugzilla/show_bug.cgi?id=57489 Mark Thomaschanged: What|Removed |Added Resolution|--- |FIXED Status|NEW |RESOLVED --- Comment #26 from Mark Thomas --- This issue identified in comment #22 did apply to 8.0.x and 7.0.x along with the issue identified in 9.0.x. The back-ports have been completed and this fix will be included in 9.0.0.M2, 8.0.31 and 7.0.68 onwards. -- You are receiving this mail because: You are the assignee for the bug. - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
[Bug 57489] java.util.concurrent.ExecutionException: java.io.IOException: Key must be cancelled
https://bz.apache.org/bugzilla/show_bug.cgi?id=57489 --- Comment #22 from Barry Coughlan--- You've probably got this far already, but it seems that the cause for all of the test failures is this block in AbstractServletInputStream.java which swallows the exception: try { ready = Boolean.valueOf(doIsReady()); } catch (IOException e) { onError(e); } Throwing the exception in the catch block causes the tests to pass (although some awaitOnError() statements need to be modified). -- You are receiving this mail because: You are the assignee for the bug. - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
[Bug 57489] java.util.concurrent.ExecutionException: java.io.IOException: Key must be cancelled
https://bz.apache.org/bugzilla/show_bug.cgi?id=57489 --- Comment #23 from Remy Maucherat--- This looks like what it should do however: call onError. Rethrowing in that method is not allowed. -- You are receiving this mail because: You are the assignee for the bug. - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
[Bug 57489] java.util.concurrent.ExecutionException: java.io.IOException: Key must be cancelled
https://bz.apache.org/bugzilla/show_bug.cgi?id=57489 --- Comment #24 from Barry Coughlan--- (In reply to Remy Maucherat from comment #23) > This looks like what it should do however: call onError. Rethrowing in that > method is not allowed. Sorry for not being clear - I wasn't suggesting that throwing the exception was a good fix (I'm not very familiar with the code), I was just using it to demonstrate that the issue lies there. Other read errors that occur in WsFrameServer.onDataAvailable() throw up the IOException so that onError/onClose is called, but swallowing the IOException in isReady() means that the onClose is never called. -- You are receiving this mail because: You are the assignee for the bug. - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
[Bug 57489] java.util.concurrent.ExecutionException: java.io.IOException: Key must be cancelled
https://bz.apache.org/bugzilla/show_bug.cgi?id=57489 Mark Thomaschanged: What|Removed |Added Status|NEEDINFO|NEW --- Comment #21 from Mark Thomas --- Thanks for the test cases. I'm taking a look. -- You are receiving this mail because: You are the assignee for the bug. - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
[Bug 57489] java.util.concurrent.ExecutionException: java.io.IOException: Key must be cancelled
https://bz.apache.org/bugzilla/show_bug.cgi?id=57489 --- Comment #19 from Barry Coughlan--- Created attachment 33322 --> https://bz.apache.org/bugzilla/attachment.cgi?id=33322=edit Websocket client for testing TCP behaviour -- You are receiving this mail because: You are the assignee for the bug. - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
[Bug 57489] java.util.concurrent.ExecutionException: java.io.IOException: Key must be cancelled
https://bz.apache.org/bugzilla/show_bug.cgi?id=57489 --- Comment #18 from Barry Coughlan--- Created attachment 33321 --> https://bz.apache.org/bugzilla/attachment.cgi?id=33321=edit Test cases for closing websockets -- You are receiving this mail because: You are the assignee for the bug. - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
[Bug 57489] java.util.concurrent.ExecutionException: java.io.IOException: Key must be cancelled
https://bz.apache.org/bugzilla/show_bug.cgi?id=57489 --- Comment #17 from Barry Coughlan--- I tried creating a test for this today. It turns out that this problem only happens when a websocket is not closed with a proper closing handshake. Most Websocket clients are quite polite when closing websockets, they will send a close frame and then wait for the handshake before closing the TCP connection. This means that the problem can't be replicated by doing session.close() in a Tomcat websocket client. The reason that I can replicate this with Tyrus is that Tyrus sends a websocket close frame but then closes the TCP connection immediately without completing the handshake. The steps with the example in my previous post and Tyrus CLI are: 1. Open connection 2. Send message, breaking in the @OnMessage 3. Close connection in Tyrus (or kill -9 the process to send just a TCP RST, the result is the same) 4. Resume @OnMessage (which sends a message) Any suggestions on how to automate the test? Can I force a Tomcat client's socket to close without a handshake? -- You are receiving this mail because: You are the assignee for the bug. - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
[Bug 57489] java.util.concurrent.ExecutionException: java.io.IOException: Key must be cancelled
https://bz.apache.org/bugzilla/show_bug.cgi?id=57489 --- Comment #16 from Barry Coughlan--- I just built the trunk and confirmed the same behaviour. Note that this only works with the NIO connector. I'll get back to you with a test case. -- You are receiving this mail because: You are the assignee for the bug. - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
[Bug 57489] java.util.concurrent.ExecutionException: java.io.IOException: Key must be cancelled
https://bz.apache.org/bugzilla/show_bug.cgi?id=57489 --- Comment #15 from Mark Thomas--- I can't reproduce this using the current 8.0.x code. There is a fix that looks related: bug 58624 -- You are receiving this mail because: You are the assignee for the bug. - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
[Bug 57489] java.util.concurrent.ExecutionException: java.io.IOException: Key must be cancelled
https://bz.apache.org/bugzilla/show_bug.cgi?id=57489 Mark Thomaschanged: What|Removed |Added Status|REOPENED|NEEDINFO -- You are receiving this mail because: You are the assignee for the bug. - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
[Bug 57489] java.util.concurrent.ExecutionException: java.io.IOException: Key must be cancelled
https://bz.apache.org/bugzilla/show_bug.cgi?id=57489 Barry Coughlanchanged: What|Removed |Added Resolution|FIXED |--- Status|RESOLVED|REOPENED --- Comment #14 from Barry Coughlan --- I can reproduce this on 8.0.29. I will create a proper test case that doesn't need breakpoints during the week. Reproduced with the following: @OnMessage public void onMessage(Session session, ModelObject msg) { try { session.getBasicRemote().sendText("Test"); // <-- Breakpoint here } catch (IOException e) { e.printStackTrace(); } } 1. Open websocket connection to the server 2. Send message from client to server, hits the breakpoint 3. Close the connection 4. Continue from the @OnMessage breakpoint The following happens: - Step 4 throws an exception as expected (java.io.IOException: An established connection was aborted by the software in your host machine) (we catch and log this exception) - @OnError is called with a java.nio.channels.ClosedChannelException: java.nio.channels.ClosedChannelException at sun.nio.ch.SocketChannelImpl.ensureReadOpen(SocketChannelImpl.java:256) at sun.nio.ch.SocketChannelImpl.read(SocketChannelImpl.java:299) at org.apache.tomcat.util.net.NioChannel.read(NioChannel.java:137) at org.apache.coyote.http11.upgrade.NioServletInputStream.fillReadBuffer(NioServletInputStream.java:136) at org.apache.coyote.http11.upgrade.NioServletInputStream.doIsReady(NioServletInputStream.java:49) at org.apache.coyote.http11.upgrade.AbstractServletInputStream.isReady(AbstractServletInputStream.java:66) at org.apache.tomcat.websocket.server.WsFrameServer.onDataAvailable(WsFrameServer.java:49) at org.apache.tomcat.websocket.server.WsHttpUpgradeHandler$WsReadListener.onDataAvailable(WsHttpUpgradeHandler.java:183) at org.apache.coyote.http11.upgrade.AbstractServletInputStream.onDataAvailable(AbstractServletInputStream.java:198) at org.apache.coyote.http11.upgrade.AbstractProcessor.upgradeDispatch(AbstractProcessor.java:96) at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:669) at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1500) at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1456) 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) - Further attempts to send data on this session results in the "Key must be cancelled" exception: java.io.IOException: java.util.concurrent.ExecutionException: java.io.IOException: Key must be cancelled at org.apache.tomcat.websocket.WsRemoteEndpointImplBase.startMessageBlock(WsRemoteEndpointImplBase.java:282) at org.apache.tomcat.websocket.WsRemoteEndpointImplBase.sendPing(WsRemoteEndpointImplBase.java:174) at org.apache.tomcat.websocket.WsRemoteEndpointBase.sendPing(WsRemoteEndpointBase.java:55) at com.myapp.WsOutbound.sendPing(WsOutbound.java:295) . The @OnClose method is never called. -- You are receiving this mail because: You are the assignee for the bug. - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
[Bug 57489] java.util.concurrent.ExecutionException: java.io.IOException: Key must be cancelled
https://bz.apache.org/bugzilla/show_bug.cgi?id=57489 Mark Thomas ma...@apache.org changed: What|Removed |Added Resolution|--- |FIXED Status|NEEDINFO|RESOLVED --- Comment #13 from Mark Thomas ma...@apache.org --- No response for over two months. I'm going to assume that this is fixed. Please feel free to re-open if that is not the case. If the bug is still present, a test case to reproduce the issue will make it a lot easier to fix. -- You are receiving this mail because: You are the assignee for the bug. - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
[Bug 57489] java.util.concurrent.ExecutionException: java.io.IOException: Key must be cancelled
https://bz.apache.org/bugzilla/show_bug.cgi?id=57489 --- Comment #12 from Mark Thomas ma...@apache.org --- A handful of additional fixes that might be related to this have gone into the 8.0.20 release candidate. An update on whether or not the issue is still present would be appreciated. -- You are receiving this mail because: You are the assignee for the bug. - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
[Bug 57489] java.util.concurrent.ExecutionException: java.io.IOException: Key must be cancelled
https://issues.apache.org/bugzilla/show_bug.cgi?id=57489 --- Comment #11 from Mark Thomas ma...@apache.org --- I've fixed another issue. I don't think it will make any different but if you could do a quick test it would be appreciated. I've just noticed that the stack trace passes through the onOpen method of the WebSocket Endpoint. That looks odd. I'm wondering if Atmosphere is doing something we didn't anticipate with the API. I'll look further but I don't expect to get this fixed for the next 8.0.x release. What I really need is a simple test case to reproduce this issue. -- You are receiving this mail because: You are the assignee for the bug. - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
[Bug 57489] java.util.concurrent.ExecutionException: java.io.IOException: Key must be cancelled
https://issues.apache.org/bugzilla/show_bug.cgi?id=57489 --- Comment #10 from wodenc...@gmail.com --- Hi Mark, I built Tomcat from Trunk and tested again. Unfortunately the issue happened again, here is the Stack Trace: 2015-02-10 16:01:13,056 CST ERROR [null] - java.io.IOException: at org.apache.tomcat.websocket.WsRemoteEndpointImplBase.startMessageBlock(WsRemoteEndpointImplBase.java:282) at org.apache.tomcat.websocket.WsSession.sendCloseMessage(WsSession.java:570) at org.apache.tomcat.websocket.WsSession.doClose(WsSession.java:478) at org.apache.tomcat.websocket.WsSession.close(WsSession.java:445) at org.apache.tomcat.websocket.WsSession.close(WsSession.java:439) at org.atmosphere.container.version.JSR356WebSocket.close(JSR356WebSocket.java:104) at org.atmosphere.websocket.WebSocket.close(WebSocket.java:264) at org.atmosphere.cpr.AtmosphereResponse.close(AtmosphereResponse.java:836) at org.atmosphere.cpr.AtmosphereResourceImpl.cancel(AtmosphereResourceImpl.java:720) at org.atmosphere.cpr.AtmosphereResourceImpl.close(AtmosphereResourceImpl.java:785) at com.vaadin.server.communication.AtmospherePushConnection.disconnect(AtmospherePushConnection.java:294) at com.vaadin.server.communication.AtmospherePushConnection.connect(AtmospherePushConnection.java:232) at com.vaadin.server.communication.PushHandler$2.run(PushHandler.java:135) at com.vaadin.server.communication.PushHandler.callWithUi(PushHandler.java:253) at com.vaadin.server.communication.PushHandler.access$200(PushHandler.java:56) at com.vaadin.server.communication.PushHandler$1.onRequest(PushHandler.java:74) at org.atmosphere.cpr.AsynchronousProcessor.action(AsynchronousProcessor.java:174) at org.atmosphere.cpr.AsynchronousProcessor.suspended(AsynchronousProcessor.java:95) at org.atmosphere.container.Servlet30CometSupport.service(Servlet30CometSupport.java:66) at org.atmosphere.cpr.AtmosphereFramework.doCometSupport(AtmosphereFramework.java:1802) at org.atmosphere.websocket.DefaultWebSocketProcessor.dispatch(DefaultWebSocketProcessor.java:432) at org.atmosphere.websocket.DefaultWebSocketProcessor.open(DefaultWebSocketProcessor.java:186) at org.atmosphere.container.JSR356Endpoint.onOpen(JSR356Endpoint.java:160) at org.apache.tomcat.websocket.server.WsHttpUpgradeHandler.init(WsHttpUpgradeHandler.java:138) at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:687) at org.apache.coyote.http11.Http11NioProtocol$Http11ConnectionHandler.process(Http11NioProtocol.java:223) at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1558) at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1515) at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) at java.lang.Thread.run(Unknown Source) Caused by: java.util.concurrent.ExecutionException: java.io.IOException: Key must be cancelled at org.apache.tomcat.websocket.FutureToSendHandler.get(FutureToSendHandler.java:102) at org.apache.tomcat.websocket.WsRemoteEndpointImplBase.startMessageBlock(WsRemoteEndpointImplBase.java:275) ... 31 more Caused by: java.io.IOException: Key must be cancelled at org.apache.coyote.http11.upgrade.NioServletOutputStream.doWriteInternal(NioServletOutputStream.java:84) at org.apache.coyote.http11.upgrade.NioServletOutputStream.doWrite(NioServletOutputStream.java:61) at org.apache.coyote.http11.upgrade.AbstractServletOutputStream.writeInternal(AbstractServletOutputStream.java:165) at org.apache.coyote.http11.upgrade.AbstractServletOutputStream.write(AbstractServletOutputStream.java:132) at org.apache.tomcat.websocket.server.WsRemoteEndpointImplServer.onWritePossible(WsRemoteEndpointImplServer.java:99) at org.apache.tomcat.websocket.server.WsRemoteEndpointImplServer.doWrite(WsRemoteEndpointImplServer.java:81) at org.apache.tomcat.websocket.WsRemoteEndpointImplBase.writeMessagePart(WsRemoteEndpointImplBase.java:450) at org.apache.tomcat.websocket.WsRemoteEndpointImplBase.startMessage(WsRemoteEndpointImplBase.java:338) at org.apache.tomcat.websocket.WsRemoteEndpointImplBase.startMessageBlock(WsRemoteEndpointImplBase.java:270) ... 31 more Caused by: java.util.concurrent.ExecutionException: 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:570) at org.apache.tomcat.websocket.WsSession.doClose(WsSession.java:478) at org.apache.tomcat.websocket.WsSession.close(WsSession.java:445) at
[Bug 57489] java.util.concurrent.ExecutionException: java.io.IOException: Key must be cancelled
https://issues.apache.org/bugzilla/show_bug.cgi?id=57489 --- Comment #9 from Mark Thomas ma...@apache.org --- OK. I've made various changes to 8.0.x that should at least make this less likely and hopefully prevent. If you could test with the current 8.0.x and let us know the results that would be great. -- You are receiving this mail because: You are the assignee for the bug. - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
[Bug 57489] java.util.concurrent.ExecutionException: java.io.IOException: Key must be cancelled
https://issues.apache.org/bugzilla/show_bug.cgi?id=57489 --- Comment #8 from Christopher Schultz ch...@christopherschultz.net --- (In reply to wodencafe from comment #7) I ran svn update, then ant, and finally copied the built libs into my Tomcat 8 server for testing. That's the correct procedure. If you are using split CATALINA_BASE and CATALINA_HOME (a great thing to do IMO), you can just point your CATALINA_HOME to the directory you have your svn working copy in, under output/build, something like this: $ export CATALINA_BASE=[...] $ export CATALINA_HOME=/path/to/tomcat-svn/output/build $ $CATALINA_HOME/bin/catalina.sh start You can always go back to your previous Tomcat (8.0.18, etc.) by switching CATALINA_HOME back to its previous value. -- You are receiving this mail because: You are the assignee for the bug. - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
[Bug 57489] java.util.concurrent.ExecutionException: java.io.IOException: Key must be cancelled
https://issues.apache.org/bugzilla/show_bug.cgi?id=57489 --- Comment #5 from wodenc...@gmail.com --- Hi Mark, I have been testing with the latest Trunk of 8.0.19, and verified that is the case with this line in the logs: 2015-02-04 15:06:02,796 CST INFO [null] - Atmosphere is using async support: org.atmosphere.container.JSR356AsyncSupport running under container: Apache Tomcat/8.0.19-dev using javax.servlet/3.0 using javax.servlet/3.0 and jsr356/WebSocket API Unfortunately, after interacting with the application for a brief amount of time, it hangs and we see the same exception: 2015-02-04 15:07:01,691 CST ERROR [null] - java.io.IOException: at org.apache.tomcat.websocket.WsRemoteEndpointImplBase.startMessageBlock(WsRemoteEndpointImplBase.java:282) at org.apache.tomcat.websocket.WsSession.sendCloseMessage(WsSession.java:570) at org.apache.tomcat.websocket.WsSession.doClose(WsSession.java:478) at org.apache.tomcat.websocket.WsSession.close(WsSession.java:445) at org.apache.tomcat.websocket.WsSession.close(WsSession.java:439) at org.atmosphere.container.version.JSR356WebSocket.close(JSR356WebSocket.java:104) at org.atmosphere.websocket.WebSocket.close(WebSocket.java:264) at org.atmosphere.cpr.AtmosphereResponse.close(AtmosphereResponse.java:836) at org.atmosphere.cpr.AtmosphereResourceImpl.cancel(AtmosphereResourceImpl.java:720) at org.atmosphere.cpr.AtmosphereResourceImpl.close(AtmosphereResourceImpl.java:785) at com.vaadin.server.communication.AtmospherePushConnection.disconnect(AtmospherePushConnection.java:294) at com.vaadin.server.communication.AtmospherePushConnection.connect(AtmospherePushConnection.java:232) at com.vaadin.server.communication.PushHandler$2.run(PushHandler.java:135) at com.vaadin.server.communication.PushHandler.callWithUi(PushHandler.java:253) at com.vaadin.server.communication.PushHandler.access$200(PushHandler.java:56) at com.vaadin.server.communication.PushHandler$1.onRequest(PushHandler.java:74) at org.atmosphere.cpr.AsynchronousProcessor.action(AsynchronousProcessor.java:174) at org.atmosphere.cpr.AsynchronousProcessor.suspended(AsynchronousProcessor.java:95) at org.atmosphere.container.Servlet30CometSupport.service(Servlet30CometSupport.java:66) at org.atmosphere.cpr.AtmosphereFramework.doCometSupport(AtmosphereFramework.java:1802) at org.atmosphere.websocket.DefaultWebSocketProcessor.dispatch(DefaultWebSocketProcessor.java:432) at org.atmosphere.websocket.DefaultWebSocketProcessor.open(DefaultWebSocketProcessor.java:186) at org.atmosphere.container.JSR356Endpoint.onOpen(JSR356Endpoint.java:160) at org.apache.tomcat.websocket.server.WsHttpUpgradeHandler.init(WsHttpUpgradeHandler.java:138) at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:687) at org.apache.coyote.http11.Http11NioProtocol$Http11ConnectionHandler.process(Http11NioProtocol.java:223) at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1558) at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1515) at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) at java.lang.Thread.run(Unknown Source) Caused by: java.util.concurrent.ExecutionException: java.io.IOException: Key must be cancelled at org.apache.tomcat.websocket.FutureToSendHandler.get(FutureToSendHandler.java:102) at org.apache.tomcat.websocket.WsRemoteEndpointImplBase.startMessageBlock(WsRemoteEndpointImplBase.java:275) ... 31 more Caused by: java.io.IOException: Key must be cancelled at org.apache.coyote.http11.upgrade.NioServletOutputStream.doWriteInternal(NioServletOutputStream.java:84) at org.apache.coyote.http11.upgrade.NioServletOutputStream.doWrite(NioServletOutputStream.java:61) at org.apache.coyote.http11.upgrade.AbstractServletOutputStream.writeInternal(AbstractServletOutputStream.java:162) at org.apache.coyote.http11.upgrade.AbstractServletOutputStream.write(AbstractServletOutputStream.java:129) at org.apache.tomcat.websocket.server.WsRemoteEndpointImplServer.onWritePossible(WsRemoteEndpointImplServer.java:99) at org.apache.tomcat.websocket.server.WsRemoteEndpointImplServer.doWrite(WsRemoteEndpointImplServer.java:81) at org.apache.tomcat.websocket.WsRemoteEndpointImplBase.writeMessagePart(WsRemoteEndpointImplBase.java:450) at org.apache.tomcat.websocket.WsRemoteEndpointImplBase.startMessage(WsRemoteEndpointImplBase.java:338) at org.apache.tomcat.websocket.WsRemoteEndpointImplBase.startMessageBlock(WsRemoteEndpointImplBase.java:270) ... 31 more Caused by: java.util.concurrent.ExecutionException: at org.apache.tomcat.websocket.FutureToSendHandler.get(FutureToSendHandler.java:102) at
[Bug 57489] java.util.concurrent.ExecutionException: java.io.IOException: Key must be cancelled
https://issues.apache.org/bugzilla/show_bug.cgi?id=57489 --- Comment #7 from wodenc...@gmail.com --- Hi Mark, I am fine with building SVN, as long as I am doing it correctly :) What I did today was I went into the directory where I had Tomcat trunk checked out, I ran svn update, then ant, and finally copied the built libs into my Tomcat 8 server for testing. This is the correct process, right? Let me know when to test again. Thank you, Chris Boyd -- You are receiving this mail because: You are the assignee for the bug. - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
[Bug 57489] java.util.concurrent.ExecutionException: java.io.IOException: Key must be cancelled
https://issues.apache.org/bugzilla/show_bug.cgi?id=57489 --- Comment #6 from Mark Thomas ma...@apache.org --- Thanks for the feedback. The CI system has highlighted a couple of issues with these fixes in place. I've just found what I think is another instance of multiple write registrations in trunk. My plan is to get the CI system building trunk cleanly, port the fixes back to 8.0.x and then get the CI system for 8.0.x running cleanly. I don't think there is much benefit in you testing any more until the CI system says the build is clean. I'll ping this ticket when that is done. Do you need me to build 8.0.x for you to test or are you happy building from svn? -- You are receiving this mail because: You are the assignee for the bug. - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
[Bug 57489] java.util.concurrent.ExecutionException: java.io.IOException: Key must be cancelled
https://issues.apache.org/bugzilla/show_bug.cgi?id=57489 Mark Thomas ma...@apache.org changed: What|Removed |Added Status|NEW |NEEDINFO --- Comment #4 from Mark Thomas ma...@apache.org --- I've just fixed some issues that might have triggered this sort of issue in trunk and 8.0.x. There is a development build of 8.0.19-dev here: http://people.apache.org/~markt/dev/v8.0.19-dev/ Any feedback you can provide on testing with this or 8.0.x trunk would be great. -- You are receiving this mail because: You are the assignee for the bug. - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
[Bug 57489] java.util.concurrent.ExecutionException: java.io.IOException: Key must be cancelled
https://issues.apache.org/bugzilla/show_bug.cgi?id=57489 --- Comment #3 from Jean-Francois Arcand jfarc...@apache.org --- @Mark, I did hack a little to prevent that error (which I may not fixed completely) https://github.com/Atmosphere/atmosphere/issues/1646 The stack trave will probably help you. -- You are receiving this mail because: You are the assignee for the bug. - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
[Bug 57489] java.util.concurrent.ExecutionException: java.io.IOException: Key must be cancelled
https://issues.apache.org/bugzilla/show_bug.cgi?id=57489 --- Comment #2 from Mark Thomas ma...@apache.org --- I've added some debig logging to trunk, 8.0.x (for 8.0.19 onwards) and 7.0.x (for 7.0.58 onwards). Any further information you can provide as to what is going on would be very helpful. -- You are receiving this mail because: You are the assignee for the bug. - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
[Bug 57489] java.util.concurrent.ExecutionException: java.io.IOException: Key must be cancelled
https://issues.apache.org/bugzilla/show_bug.cgi?id=57489 Mark Thomas ma...@apache.org changed: What|Removed |Added OS||All --- Comment #1 from Mark Thomas ma...@apache.org --- Hmm. Whatever is going wrong, is going wrong earlier than this stack trace. Something causes the WebSocket connection to close. It appears that Atmosphere isn't notified about this / doesn't notice it. Something happens later that causes Atmosphere to realise there is a dead WebSocket connection. Atmosphere triggers a 'dirty' close. This 'dirty' close fails because the WebSocket connection has already been closed. That triggers an error because, as far as I can tell, a normal WebSocket close reason (1000) is used. If abnormal closure was used (1006), Tomcat would swallow any error. What we really need to figure out is why is this connection closed in the first place. There isn't much in the way of debug logging for WebSocket session closure in Tomcat - I'll fix that for the next release - but it is worth seeing is Atmosphere's debug logging tells you anything useful. -- You are receiving this mail because: You are the assignee for the bug. - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
[Bug 57489] java.util.concurrent.ExecutionException: java.io.IOException: Key must be cancelled
https://issues.apache.org/bugzilla/show_bug.cgi?id=57489 wodenc...@gmail.com changed: What|Removed |Added OS|Linux |Windows 8 -- You are receiving this mail because: You are the assignee for the bug. - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org