Bug 1492870 - [GSS](6.4.z) Deadlock between WsSession.onClose and HttpEventImpl.close
Summary: [GSS](6.4.z) Deadlock between WsSession.onClose and HttpEventImpl.close
Keywords:
Status: CLOSED CURRENTRELEASE
Alias: None
Product: JBoss Enterprise Application Platform 6
Classification: JBoss
Component: Web
Version: 6.4.17
Hardware: Unspecified
OS: Unspecified
unspecified
unspecified
Target Milestone: CR1
: EAP 6.4.18
Assignee: Aaron Ogburn
QA Contact: Michael Cada
URL:
Whiteboard:
Depends On:
Blocks: 1493159 eap6418-payload 1491102 1494661
TreeView+ depends on / blocked
 
Reported: 2017-09-18 19:48 UTC by Aaron Ogburn
Modified: 2021-03-11 15:48 UTC (History)
4 users (show)

Fixed In Version:
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Environment:
Last Closed: 2017-12-06 18:29:17 UTC
Type: Bug
Embargoed:


Attachments (Terms of Use)


Links
System ID Private Priority Status Summary Last Updated
Red Hat Knowledge Base (Solution) 3188402 0 None None None 2017-09-19 13:35:59 UTC

Description Aaron Ogburn 2017-09-18 19:48:51 UTC
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)

Comment 4 Jiří Bílek 2017-10-20 08:44:55 UTC
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

Comment 5 Petr Penicka 2017-12-06 18:29:17 UTC
Released on Nov 14 2017 as part of EAP 6.4.18.


Note You need to log in before you can comment on or make changes to this bug.