Bug 1299057

Summary: [GSS](6.4.z) Deadlock in WsRemoteEndpointImplServer.onWritePossible
Product: [JBoss] JBoss Enterprise Application Platform 6 Reporter: Aaron Ogburn <aogburn>
Component: WebAssignee: Fedor Gavrilov <fgavrilo>
Status: CLOSED CURRENTRELEASE QA Contact: Radim Hatlapatka <rhatlapa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 6.4.6CC: bbaranow, bmaxwell, chaowan, dpospisi, fgavrilo, istudens, jtruhlar, mcada, rhatlapa, rmaucher, vtunka
Target Milestone: CR1   
Target Release: EAP 6.4.7   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2017-01-17 11:58:31 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 1299058, 1279552, 1308845    

Description Aaron Ogburn 2016-01-15 20:18:37 UTC
A deadlock is possible in

http-/0.0.0.0:8080-1":

        at org.apache.tomcat.websocket.server.WsRemoteEndpointImplServer.onWritePossible(WsRemoteEndpointImplServer.java:93)

        - waiting to lock <0x00000006dee6a1a8> (a java.nio.HeapByteBuffer)

        - locked <0x00000006dee6a200> (a java.lang.Object)

        at org.apache.tomcat.websocket.server.WsHttpUpgradeHandler$WsWriteListener.onWritePossible(WsHttpUpgradeHandler.java:243)

        at org.apache.catalina.core.StandardWrapperValve.async(StandardWrapperValve.java:605)

        at org.apache.catalina.core.StandardWrapperValve.event(StandardWrapperValve.java:350)

        at org.apache.catalina.core.StandardContextValve.event(StandardContextValve.java:171)

        at org.apache.catalina.valves.ValveBase.event(ValveBase.java:185)

        at org.apache.catalina.core.StandardHostValve.event(StandardHostValve.java:252)

        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:228)

        at org.apache.coyote.http11.Http11NioProcessor.event(Http11NioProcessor.java:232)

        at org.apache.coyote.http11.Http11NioProtocol$Http11ConnectionHandler.event(Http11NioProtocol.java:818)

        at org.apache.tomcat.util.net.NioEndpoint$ChannelProcessor.run(NioEndpoint.java:939)

        - locked <0x00000006deeeb9c0> (a java.lang.Object)

        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)

        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)

        at org.apache.tomcat.util.net.NioEndpoint$DefaultThreadFactory$1$1.run(NioEndpoint.java:1249)

        at java.lang.Thread.run(Thread.java:745)

"EJB default - 1":

        at org.apache.tomcat.websocket.server.WsRemoteEndpointImplServer.onWritePossible(WsRemoteEndpointImplServer.java:81)

        - waiting to lock <0x00000006dee6a200> (a java.lang.Object)

        at org.apache.tomcat.websocket.server.WsRemoteEndpointImplServer.doWrite(WsRemoteEndpointImplServer.java:76)

        at org.apache.tomcat.websocket.WsRemoteEndpointImplBase.writeMessagePart(WsRemoteEndpointImplBase.java:444)

        at org.apache.tomcat.websocket.WsRemoteEndpointImplBase.startMessage(WsRemoteEndpointImplBase.java:334)

        at org.apache.tomcat.websocket.WsRemoteEndpointImplBase$TextMessageSendHandler.write(WsRemoteEndpointImplBase.java:741)

        - locked <0x00000006dee6a1a8> (a java.nio.HeapByteBuffer)

        at org.apache.tomcat.websocket.WsRemoteEndpointImplBase.sendPartialString(WsRemoteEndpointImplBase.java:239)

        at org.apache.tomcat.websocket.WsRemoteEndpointImplBase.sendString(WsRemoteEndpointImplBase.java:182)

        at org.apache.tomcat.websocket.WsRemoteEndpointBasic.sendText(WsRemoteEndpointBasic.java:37)

Comment 1 Aaron Ogburn 2016-01-15 20:57:55 UTC
Created attachment 1115274 [details]
BZ1299058.zip

Comment 2 Aaron Ogburn 2016-01-15 21:12:25 UTC
Created attachment 1115277 [details]
BZ1299058.zip

Comment 7 Michael Cada 2016-03-08 11:22:48 UTC
Verified on EAP 6.4.7.CP.CR2

We don't have reproducer for this deadlock, but customer confirmed that patch fixed their reproducer. The patch is included and no regression was found, marking as verified. More information in bz1299058.

Comment 8 Petr Penicka 2017-01-17 11:58:31 UTC
Retroactively bulk-closing issues from released EAP 6.4 cumulative patches.