Hi,

I have got an deadlock situation in MutexTransport. The usecase is that I
have a broker, producer and consumer all deployed in separate WARs and the
communicate over vm:// transport. I have a servelt which creates the
producer which produces two messages to the same topic, but with different
message selectors for two consumers. I maybe should mention that i have a
lingo, jencks, spring combo setup...

Here's the threaddump from the deadlock

Found one Java-level deadlock:
=============================
"Thread-44":
  waiting to lock monitor 0x00a6b29c (object 0x234e2f48, a
java.lang.Object),
  which is held by "http-8080-Processor21"
"http-8080-Processor21":
  waiting to lock monitor 0x00a6afbc (object 0x23508c88, a
java.lang.Object),
  which is held by "Thread-44"

Java stack information for the threads listed above:
===================================================
"Thread-44":
        at
org.apache.activemq.transport.MutexTransport.oneway(MutexTransport.java:45)
        - waiting to lock <0x234e2f48> (a java.lang.Object)
        at
org.apache.activemq.transport.ResponseCorrelator.oneway(ResponseCorrelator.java:59)
        at
org.apache.activemq.broker.TransportConnection.dispatch(TransportConnection.java:215)
        at
org.apache.activemq.broker.TransportConnection$1.onCommand(TransportConnection.java:63)
        at
org.apache.activemq.transport.ResponseCorrelator.onCommand(ResponseCorrelator.java:92)
        at
org.apache.activemq.transport.TransportFilter.onCommand(TransportFilter.java:67)
        at
org.apache.activemq.transport.vm.VMTransport.oneway(VMTransport.java:77)
        at
org.apache.activemq.transport.MarshallingTransportFilter.oneway(MarshallingTransportFilter.java:37)
        at
org.apache.activemq.transport.MutexTransport.oneway(MutexTransport.java:45)
        - locked <0x23508c88> (a java.lang.Object)
        at
org.apache.activemq.transport.ResponseCorrelator.asyncRequest(ResponseCorrelator.java:67)
        at
org.apache.activemq.transport.ResponseCorrelator.request(ResponseCorrelator.java:72)
        at
org.apache.activemq.ActiveMQConnection.syncSendPacket(ActiveMQConnection.java:1115)
        at
org.apache.activemq.TransactionContext.commit(TransactionContext.java:260)
        at
org.apache.activemq.ra.LocalAndXATransaction.commit(LocalAndXATransaction.java:57)
        at
org.jencks.LocalTransactionEndpoint.afterDelivery(LocalTransactionEndpoint.java:52)
        at
org.apache.activemq.ra.MessageEndpointProxy$MessageEndpointAlive.afterDelivery(MessageEndpointProxy.java:130)
        at
org.apache.activemq.ra.MessageEndpointProxy.afterDelivery(MessageEndpointProxy.java:64)
        at
org.apache.activemq.ra.ServerSessionImpl.afterDelivery(ServerSessionImpl.java:214)
        at org.apache.activemq.ActiveMQSession.run(ActiveMQSession.java:752)
        at
org.apache.activemq.ra.ServerSessionImpl.run(ServerSessionImpl.java:163)
        - locked <0x237b68b0> (a org.apache.activemq.ra.ServerSessionImpl)
        at
org.apache.geronimo.connector.work.WorkerContext.run(WorkerContext.java:291)
        at
EDU.oswego.cs.dl.util.concurrent.PooledExecutor$Worker.run(Unknown Source)
        at java.lang.Thread.run(Thread.java:595)
"http-8080-Processor21":
        at
org.apache.activemq.transport.MutexTransport.oneway(MutexTransport.java:45)
        - waiting to lock <0x23508c88> (a java.lang.Object)
        at
org.apache.activemq.transport.ResponseCorrelator.oneway(ResponseCorrelator.java:59)
        at
org.apache.activemq.ActiveMQConnection.asyncSendPacket(ActiveMQConnection.java:1095)
        at
org.apache.activemq.ActiveMQSession.<init>(ActiveMQSession.java:228)
        at
org.apache.activemq.ActiveMQConnection.createSession(ActiveMQConnection.java:275)
        at
org.apache.activemq.ra.ServerSessionPoolImpl.createServerSessionImpl(ServerSessionPoolImpl.java:60)
        at
org.apache.activemq.ra.ServerSessionPoolImpl.getServerSession(ServerSessionPoolImpl.java:112)
        - locked <0x234dc7a0> (a
org.apache.activemq.ra.ServerSessionPoolImpl)
        at
org.apache.activemq.ActiveMQConnectionConsumer.dispatch(ActiveMQConnectionConsumer.java:136)
        at
org.apache.activemq.ActiveMQConnection.onCommand(ActiveMQConnection.java:1407)
        at
org.apache.activemq.transport.ResponseCorrelator.onCommand(ResponseCorrelator.java:92)
        at
org.apache.activemq.transport.TransportFilter.onCommand(TransportFilter.java:67)
        at
org.apache.activemq.transport.MarshallingTransportFilter.onCommand(MarshallingTransportFilter.java:42)
        at
org.apache.activemq.transport.vm.VMTransport.oneway(VMTransport.java:77)
        at
org.apache.activemq.transport.MutexTransport.oneway(MutexTransport.java:45)
        - locked <0x234e2f48> (a java.lang.Object)
        at
org.apache.activemq.transport.ResponseCorrelator.oneway(ResponseCorrelator.java:59)
        at
org.apache.activemq.broker.TransportConnection.dispatch(TransportConnection.java:215)
        at
org.apache.activemq.broker.AbstractConnection.processDispatch(AbstractConnection.java:722)
        at
org.apache.activemq.broker.AbstractConnection.dispatchSync(AbstractConnection.java:699)
        at
org.apache.activemq.broker.region.TopicSubscription.dispatch(TopicSubscription.java:319)
        at
org.apache.activemq.broker.region.TopicSubscription.add(TopicSubscription.java:78)
        at
org.apache.activemq.broker.region.policy.SimpleDispatchPolicy.dispatch(SimpleDispatchPolicy.java:51)
        at org.apache.activemq.broker.region.Topic.dispatch(Topic.java:444)
        at org.apache.activemq.broker.region.Topic.send(Topic.java:255)
        at
org.apache.activemq.broker.region.AbstractRegion.send(AbstractRegion.java:226)
        at
org.apache.activemq.broker.region.RegionBroker.send(RegionBroker.java:349)
        at
org.apache.activemq.broker.TransactionBroker.send(TransactionBroker.java:193)
        at
org.apache.activemq.broker.BrokerFilter.send(BrokerFilter.java:114)
        at
org.apache.activemq.broker.CompositeDestinationBroker.send(CompositeDestinationBroker.java:98)
        at
org.apache.activemq.broker.MutableBrokerFilter.send(MutableBrokerFilter.java:127)
        at
org.apache.activemq.broker.AbstractConnection.processMessage(AbstractConnection.java:433)
        at
org.apache.activemq.command.ActiveMQMessage.visit(ActiveMQMessage.java:591)
        at
org.apache.activemq.broker.AbstractConnection.service(AbstractConnection.java:237)
        at
org.apache.activemq.broker.TransportConnection$1.onCommand(TransportConnection.java:61)
        at
org.apache.activemq.transport.ResponseCorrelator.onCommand(ResponseCorrelator.java:92)
        at
org.apache.activemq.transport.TransportFilter.onCommand(TransportFilter.java:67)
        at
org.apache.activemq.transport.vm.VMTransport.oneway(VMTransport.java:77)
        at
org.apache.activemq.transport.MarshallingTransportFilter.oneway(MarshallingTransportFilter.java:37)
        at
org.apache.activemq.transport.MutexTransport.oneway(MutexTransport.java:45)
        - locked <0x236fe2d8> (a java.lang.Object)
        at
org.apache.activemq.transport.ResponseCorrelator.asyncRequest(ResponseCorrelator.java:67)
        at
org.apache.activemq.transport.ResponseCorrelator.request(ResponseCorrelator.java:72)
        at
org.apache.activemq.ActiveMQConnection.syncSendPacket(ActiveMQConnection.java:1115)
        at
org.apache.activemq.ActiveMQSession.send(ActiveMQSession.java:1557)
        at
org.apache.activemq.ActiveMQMessageProducer.send(ActiveMQMessageProducer.java:463)
        at
org.logicblaze.lingo.jms.impl.OneWayRequestor.doSend(OneWayRequestor.java:196)
        at
org.logicblaze.lingo.jms.impl.MultiplexingRequestor.doSend(MultiplexingRequestor.java:189)
        - locked <0x236fe448> (a
org.logicblaze.lingo.jms.impl.MultiplexingRequestor)
        at
org.logicblaze.lingo.jms.impl.OneWayRequestor.send(OneWayRequestor.java:101)
        at
org.logicblaze.lingo.jms.impl.OneWayRequestor.send(OneWayRequestor.java:97)
        at
org.logicblaze.lingo.jms.JmsClientInterceptor.invoke(JmsClientInterceptor.java:133)
        at
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:170)
        at
org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:176)
        at $Proxy2.test(Unknown Source)
        at se.ericsson.producer.LingoServlet.doGet(LingoServlet.java:33)
        - locked <0x231d9c70> (a
se.ericsson.consumer.service.ConsumerServiceFactory)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
        at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
        at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
        at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
        at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
        at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
        at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
        at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
        at
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
        at
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
        at
org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)
        at
org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
        at
org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
        at
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
        at java.lang.Thread.run(Thread.java:595)

Found 1 deadlock.


Is my setup incorrect in some way or is this a real problem that i found?

Thanks,
-Kristoffer
-- 
View this message in context: 
http://www.nabble.com/Deadlock-in-MutexTransport-tf2490020.html#a6942040
Sent from the ActiveMQ - User mailing list archive at Nabble.com.

Reply via email to