You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@activemq.apache.org by leeper <le...@poczta.fm> on 2008/02/05 15:16:27 UTC

Deadlock(?) in broker

Hi,
I have a situation where I have a flow of messages between MDBs (in JBoss)
and the activemq hangs up. 
I simplified the situation a bit to show here - this is my MDB:
public class QueuePullerPusher implements MessageListener {
	public void onMessage(Message msg) {	
		JmsProducer.sendMessage(msg.getObject());
	}
}
and JmsProducer.sendMessage just forwards the msg to a next queue.
After short all MDB threads hang. I checked stack traces and....:
org.apache.activemq.broker.region.Queue.dispatch(Queue.java:511)
org.apache.activemq.broker.region.Queue.sendMessage(Queue.java:346)
org.apache.activemq.broker.region.Queue.send(Queue.java:326)
org.apache.activemq.broker.region.AbstractRegion.send(AbstractRegion.java:292)
org.apache.activemq.broker.region.RegionBroker.send(RegionBroker.java:382)
org.apache.activemq.broker.TransactionBroker.send(TransactionBroker.java:193)
org.apache.activemq.broker.BrokerFilter.send(BrokerFilter.java:126)
org.apache.activemq.broker.CompositeDestinationBroker.send(CompositeDestinationBroker.java:98)
org.apache.activemq.broker.MutableBrokerFilter.send(MutableBrokerFilter.java:136)
org.apache.activemq.broker.TransportConnection.processMessage(TransportConnection.java:498)
org.apache.activemq.command.ActiveMQMessage.visit(ActiveMQMessage.java:604)
org.apache.activemq.broker.TransportConnection.service(TransportConnection.java:294)
org.apache.activemq.broker.TransportConnection$1.onCommand(TransportConnection.java:185)
org.apache.activemq.transport.ResponseCorrelator.onCommand(ResponseCorrelator.java:95)
org.apache.activemq.transport.TransportFilter.onCommand(TransportFilter.java:65)
org.apache.activemq.transport.vm.VMTransport.syncOneWay(VMTransport.java:96)
org.apache.activemq.transport.vm.VMTransport.oneway(VMTransport.java:83)
org.apache.activemq.transport.MutexTransport.oneway(MutexTransport.java:47)
   - locked java.lang.Object@1fe2e3
org.apache.activemq.transport.ResponseCorrelator.asyncRequest(ResponseCorrelator.java:69)
org.apache.activemq.transport.ResponseCorrelator.request(ResponseCorrelator.java:74)
org.apache.activemq.ActiveMQConnection.syncSendPacket(ActiveMQConnection.java:1175)
org.apache.activemq.ActiveMQSession.send(ActiveMQSession.java:1551)
org.apache.activemq.ActiveMQMessageProducer.send(ActiveMQMessageProducer.java:465)
org.apache.activemq.ActiveMQMessageProducer.send(ActiveMQMessageProducer.java:384)
com.test.JmsProducer.sendMessage(JmsProducer.java:20)
com.test.QueuePullerPusher.onMessage(QueuePullerPusher.java:35)
sun.reflect.GeneratedMethodAccessor108.invoke(Unknown Source)
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
java.lang.reflect.Method.invoke(Method.java:597)
org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:112)
org.jboss.ejb3.interceptor.InvocationContextImpl.proceed(InvocationContextImpl.java:166)
org.jboss.ejb3.interceptor.EJB3InterceptorsInterceptor.invoke(EJB3InterceptorsInterceptor.java:63)
org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
org.jboss.ejb3.entity.TransactionScopedEntityManagerInterceptor.invoke(TransactionScopedEntityManagerInterceptor.java:54)
org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
org.jboss.ejb3.AllowedOperationsInterceptor.invoke(AllowedOperationsInterceptor.java:47)
org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
org.jboss.aspects.tx.TxPolicy.invokeInNoTx(TxPolicy.java:66)
org.jboss.aspects.tx.TxInterceptor$Supports.invoke(TxInterceptor.java:144)
org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
org.jboss.ejb3.stateless.StatelessInstanceInterceptor.invoke(StatelessInstanceInterceptor.java:62)
org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
org.jboss.ejb3.mdb.MessagingContainer.localInvoke(MessagingContainer.java:249)
org.jboss.ejb3.mdb.inflow.MessageInflowLocalProxy.delivery(MessageInflowLocalProxy.java:268)
org.jboss.ejb3.mdb.inflow.MessageInflowLocalProxy.invoke(MessageInflowLocalProxy.java:138)
$Proxy70.onMessage(Unknown Source)
org.apache.activemq.ra.MessageEndpointProxy$MessageEndpointAlive.onMessage(MessageEndpointProxy.java:121)
org.apache.activemq.ra.MessageEndpointProxy.onMessage(MessageEndpointProxy.java:61)
org.apache.activemq.ActiveMQSession.run(ActiveMQSession.java:696)
org.apache.activemq.ra.ServerSessionImpl.run(ServerSessionImpl.java:165)
org.jboss.resource.work.WorkWrapper.execute(WorkWrapper.java:204)
org.jboss.util.threadpool.BasicTaskWrapper.run(BasicTaskWrapper.java:275)
EDU.oswego.cs.dl.util.concurrent.PooledExecutor$Worker.run(PooledExecutor.java:756)
java.lang.Thread.run(Thread.java:619)

This is where all of them wait.

I guess this IS a bug, isn't it? It's the same with 5.0 and 4.1 ActiveMQ
versions.

Leeper
-- 
View this message in context: http://www.nabble.com/Deadlock%28-%29-in-broker-tp15290959s2354p15290959.html
Sent from the ActiveMQ - Dev mailing list archive at Nabble.com.