https://issues.apache.org/bugzilla/show_bug.cgi?id=55171
Bug ID: 55171 Summary: [jsr 356] All server threads become blocked after some websocket testing Product: Tomcat 8 Version: trunk Hardware: PC Status: NEW Severity: critical Priority: P2 Component: Catalina Assignee: dev@tomcat.apache.org Reporter: s.bos...@gmail.com Created attachment 30512 --> https://issues.apache.org/bugzilla/attachment.cgi?id=30512&action=edit full thread stack dump I have a websocket test which performs some stress testing over an echo example server running on Tomcat 8. My test is creating up to 200 websocket connections and perform some message sending/receiving. At some point of time after some test restarts, the server stops to respond. I have restarted the test with a simple single socket connection and the server was still not responding. I checked the threads stacks at the server side and it seems all of the Tomcat worker therads were blocked. Attaching the full stack trace of all threads. In the server's logs file I can see only several exceptions like this: Jul 01, 2013 11:34:52 AM org.apache.tomcat.websocket.server.WsHttpUpgradeHandler destroy SEVERE: Failed to close WebConnection while destroying the WebSocket HttpUpgradeHandler java.io.IOException: Broken pipe at sun.nio.ch.FileDispatcherImpl.write0(Native Method) at sun.nio.ch.SocketDispatcher.write(SocketDispatcher.java:50) at sun.nio.ch.IOUtil.writeFromNativeBuffer(IOUtil.java:94) at sun.nio.ch.IOUtil.write(IOUtil.java:51) at sun.nio.ch.SocketChannelImpl.write(SocketChannelImpl.java:450) at org.apache.tomcat.util.net.SecureNioChannel.flush(SecureNioChannel.java:135) at org.apache.tomcat.util.net.SecureNioChannel.close(SecureNioChannel.java:385) at org.apache.coyote.http11.upgrade.NioServletInputStream.doClose(NioServletInputStream.java:107) at org.apache.coyote.http11.upgrade.AbstractServletInputStream.close(AbstractServletInputStream.java:128) at org.apache.coyote.http11.upgrade.AbstractProcessor.close(AbstractProcessor.java:59) at org.apache.tomcat.websocket.server.WsHttpUpgradeHandler.destroy(WsHttpUpgradeHandler.java:137) at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:684) at org.apache.coyote.http11.Http11NioProtocol$Http11ConnectionHandler.process(Http11NioProtocol.java:223) at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1584) at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1543) 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:789) Note: My test setup includes proxy and loadbalancer in the middle. In some cases the loadbalancer closes websocket connections which is seen as connection reset by the server and the client. -- 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