Description of problem: Possibility of this deadlock is introduced after r2682 from bz-1410869 "http-executor-threads - 49": at org.apache.tomcat.websocket.WsSession.onClose(WsSession.java:464) - waiting to lock <0x00000007a1b2f9d0> (a java.lang.Object) at org.apache.tomcat.websocket.WsFrameBase.processDataControl(WsFrameBase.java:336) at org.apache.tomcat.websocket.WsFrameBase.processData(WsFrameBase.java:278) at org.apache.tomcat.websocket.WsFrameBase.processInputBuffer(WsFrameBase.java:128) at org.apache.tomcat.websocket.server.WsFrameServer.onDataAvailable(WsFrameServer.java:56) - locked <0x00000007a1b2f120> (a java.lang.Object) at org.apache.tomcat.websocket.server.WsHttpUpgradeHandler$WsReadListener.onDataAvailable(WsHttpUpgradeHandler.java:197) at org.apache.catalina.core.StandardWrapperValve.async(StandardWrapperValve.java:585) at org.apache.catalina.core.StandardWrapperValve.event(StandardWrapperValve.java:350) at org.apache.catalina.core.StandardContextValve.event(StandardContextValve.java:171) at org.jboss.modcluster.container.jbossweb.JBossWebContext$RequestListenerValve.event(JBossWebContext.java:89) at org.apache.catalina.valves.ValveBase.event(ValveBase.java:185) at org.apache.catalina.core.StandardHostValve.event(StandardHostValve.java:253) at org.apache.catalina.valves.ValveBase.event(ValveBase.java:185) at org.apache.catalina.core.StandardEngineValve.event(StandardEngineValve.java:121) at org.apache.catalina.connector.CoyoteAdapter.event(CoyoteAdapter.java:227) at org.apache.coyote.http11.Http11NioProcessor.event(Http11NioProcessor.java:232) at org.apache.coyote.http11.Http11NioProtocol$Http11ConnectionHandler.event(Http11NioProtocol.java:819) - locked <0x00000007a11ceff8> (a org.apache.coyote.Request) at org.apache.coyote.http11.Http11NioProtocol$Http11ConnectionHandler.event(Http11NioProtocol.java:872) - locked <0x00000007a11ceff8> (a org.apache.coyote.Request) at org.apache.tomcat.util.net.NioEndpoint$ChannelProcessor.run(NioEndpoint.java:940) - locked <0x00000007a1b2eb10> (a java.lang.Object) at org.jboss.threads.SimpleDirectExecutor.execute(SimpleDirectExecutor.java:33) at org.jboss.threads.QueueExecutor.runTask(QueueExecutor.java:808) at org.jboss.threads.QueueExecutor.access$100(QueueExecutor.java:45) at org.jboss.threads.QueueExecutor$Worker.run(QueueExecutor.java:849) at java.lang.Thread.run(Thread.java:745) at org.jboss.threads.JBossThread.run(JBossThread.java:122) "4579": at org.apache.catalina.connector.HttpEventImpl.close(HttpEventImpl.java:76) - waiting to lock <0x00000007a11ceff8> (a org.apache.coyote.Request) at org.apache.catalina.connector.OutputBuffer.close(OutputBuffer.java:305) at org.apache.catalina.connector.CoyoteOutputStream.close(CoyoteOutputStream.java:106) at org.apache.tomcat.websocket.server.WsRemoteEndpointImplServer.doClose(WsRemoteEndpointImplServer.java:143) at org.apache.tomcat.websocket.WsRemoteEndpointImplBase.close(WsRemoteEndpointImplBase.java:648) at org.apache.tomcat.websocket.WsSession.sendCloseMessage(WsSession.java:542) at org.apache.tomcat.websocket.WsSession.doClose(WsSession.java:438) - locked <0x00000007a1b2f9d0> (a java.lang.Object) at org.apache.tomcat.websocket.WsSession.close(WsSession.java:407)
I am not able to reproduce the issue. Checked fix in decompiled code - fix is inside. No regressions. Verified with EAP 6.4.18.CP.CR1
Released on Nov 14 2017 as part of EAP 6.4.18.