You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@activemq.apache.org by "Hiram Chirino (JIRA)" <ji...@apache.org> on 2008/06/20 21:51:00 UTC

[jira] Commented: (AMQ-1819) Deadlock occurs with a duplex network connection.

    [ https://issues.apache.org/activemq/browse/AMQ-1819?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=43634#action_43634 ] 

Hiram Chirino commented on AMQ-1819:
------------------------------------

made a small change to the TransportConnection.  I'm hoping that by sending the broker info async, we should be able to break this deadlock:

-                   this.processDispatch(connector.getBrokerInfo());
+                   dispatchAsync(connector.getBrokerInfo());


committed in rev 670045

> Deadlock occurs with a duplex network connection.
> -------------------------------------------------
>
>                 Key: AMQ-1819
>                 URL: https://issues.apache.org/activemq/browse/AMQ-1819
>             Project: ActiveMQ
>          Issue Type: Bug
>            Reporter: Hiram Chirino
>
> here's the deadlock info:
> {code}
> Java stack information for the threads listed above:
> ===================================================
> "NetworkBridge: java.util.concurrent.ThreadPoolExecutor$Worker@142a59e":
> 	at org.apache.activemq.transport.MutexTransport.oneway(MutexTransport.java:40)
> 	- waiting to lock <0x99f44d70> (a java.lang.Object)
> 	at org.apache.activemq.transport.ResponseCorrelator.oneway(ResponseCorrelator.java:60)
> 	at org.apache.activemq.network.DemandForwardingBridgeSupport$5.run(DemandForwardingBridgeSupport.java:341)
> 	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:885)
> 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)
> 	at java.lang.Thread.run(Thread.java:619)
> "BrokerService":
> 	at org.apache.activemq.broker.TransportConnection.lookupConnectionState(TransportConnection.java:1329)
> 	- waiting to lock <0x99f44ec8> (a org.apache.activemq.broker.TransportConnection)
> 	at org.apache.activemq.broker.TransportConnection.getConsumerBrokerExchange(TransportConnection.java:1246)
> 	- locked <0x99f667d8> (a java.util.HashMap)
> 	at org.apache.activemq.broker.TransportConnection.processMessageAck(TransportConnection.java:443)
> 	at org.apache.activemq.command.MessageAck.visit(MessageAck.java:196)
> 	at org.apache.activemq.broker.TransportConnection.service(TransportConnection.java:293)
> 	at org.apache.activemq.broker.TransportConnection$1.onCommand(TransportConnection.java:181)
> 	at org.apache.activemq.transport.ResponseCorrelator.onCommand(ResponseCorrelator.java:104)
> 	at org.apache.activemq.transport.TransportFilter.onCommand(TransportFilter.java:68)
> 	at org.apache.activemq.transport.vm.VMTransport.oneway(VMTransport.java:113)
> 	at org.apache.activemq.transport.MutexTransport.oneway(MutexTransport.java:40)
> 	- locked <0x99f44d70> (a java.lang.Object)
> 	at org.apache.activemq.transport.ResponseCorrelator.oneway(ResponseCorrelator.java:60)
> 	at org.apache.activemq.network.DemandForwardingBridgeSupport.serviceLocalCommand(DemandForwardingBridgeSupport.java:595)
> 	at org.apache.activemq.network.DemandForwardingBridgeSupport$1.onCommand(DemandForwardingBridgeSupport.java:143)
> 	at org.apache.activemq.transport.ResponseCorrelator.onCommand(ResponseCorrelator.java:104)
> 	at org.apache.activemq.transport.TransportFilter.onCommand(TransportFilter.java:68)
> 	at org.apache.activemq.transport.vm.VMTransport.oneway(VMTransport.java:113)
> 	at org.apache.activemq.transport.MutexTransport.oneway(MutexTransport.java:40)
> 	- locked <0x99f44eb0> (a java.lang.Object)
> 	at org.apache.activemq.transport.ResponseCorrelator.oneway(ResponseCorrelator.java:60)
> 	at org.apache.activemq.broker.TransportConnection.dispatch(TransportConnection.java:1188)
> 	at org.apache.activemq.broker.TransportConnection.processDispatch(TransportConnection.java:777)
> 	at org.apache.activemq.broker.TransportConnection.iterate(TransportConnection.java:814)
> 	at org.apache.activemq.thread.PooledTaskRunner.runTask(PooledTaskRunner.java:122)
> 	at org.apache.activemq.thread.PooledTaskRunner$1.run(PooledTaskRunner.java:43)
> 	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:885)
> 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)
> 	at java.lang.Thread.run(Thread.java:619)
> "ActiveMQ Transport Initiator: vm://localhost#18":
> 	at org.apache.activemq.transport.MutexTransport.oneway(MutexTransport.java:40)
> 	- waiting to lock <0x99f44eb0> (a java.lang.Object)
> 	at org.apache.activemq.transport.ResponseCorrelator.oneway(ResponseCorrelator.java:60)
> 	at org.apache.activemq.broker.TransportConnection.dispatch(TransportConnection.java:1188)
> 	at org.apache.activemq.broker.TransportConnection.processDispatch(TransportConnection.java:777)
> 	at org.apache.activemq.broker.TransportConnection.start(TransportConnection.java:860)
> 	- locked <0x99f44ec8> (a org.apache.activemq.broker.TransportConnection)
> 	at org.apache.activemq.broker.TransportConnector$1$1.run(TransportConnector.java:159)
> {code}

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.