Return-Path: Delivered-To: apmail-activemq-users-archive@www.apache.org Received: (qmail 13723 invoked from network); 2 Apr 2007 13:25:53 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 2 Apr 2007 13:25:53 -0000 Received: (qmail 97505 invoked by uid 500); 2 Apr 2007 13:26:00 -0000 Delivered-To: apmail-activemq-users-archive@activemq.apache.org Received: (qmail 97484 invoked by uid 500); 2 Apr 2007 13:26:00 -0000 Mailing-List: contact users-help@activemq.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: users@activemq.apache.org Delivered-To: mailing list users@activemq.apache.org Received: (qmail 97475 invoked by uid 99); 2 Apr 2007 13:26:00 -0000 Received: from herse.apache.org (HELO herse.apache.org) (140.211.11.133) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 02 Apr 2007 06:26:00 -0700 X-ASF-Spam-Status: No, hits=-0.0 required=10.0 tests=SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (herse.apache.org: domain of james.strachan@gmail.com designates 66.249.82.236 as permitted sender) Received: from [66.249.82.236] (HELO wx-out-0506.google.com) (66.249.82.236) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 02 Apr 2007 06:25:51 -0700 Received: by wx-out-0506.google.com with SMTP id h29so1256598wxd for ; Mon, 02 Apr 2007 06:25:31 -0700 (PDT) DKIM-Signature: a=rsa-sha1; c=relaxed/relaxed; d=gmail.com; s=beta; h=domainkey-signature:received:received:message-id:date:from:to:subject:in-reply-to:mime-version:content-type:content-transfer-encoding:content-disposition:references; b=c7ilSlSo6nsjTTA6JqymNdcQo6B38bzmw9mpStzsWJJNMq88ngdenTpW9U3E7omC74TbuI+jbD+8x1DpgrRfizGY8tHDBiiAsMnkR/IASD3+eKEgs2qhclhibOyHZoAyPZtwGXYzPFQSBoVFCJc5CyfnHBJwps9bfTtpNqmv2YE= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=beta; h=received:message-id:date:from:to:subject:in-reply-to:mime-version:content-type:content-transfer-encoding:content-disposition:references; b=c+CtXeJgvGbmsdCZsUbb246JO0K8H/tPDolW+Nf4Wiz79duymrs1QxBDgk/ggESh3iO/VRaz6t4YwAgpqUL1P6aDXR+a89IlBYBRgSejTgJ+lSN2D2kSTyw/bGtsPnRoEa+iYvVBZQuZc8zUpciP4MlEAqotgEQkTajxs06Un8M= Received: by 10.90.49.1 with SMTP id w1mr3095695agw.1175520331171; Mon, 02 Apr 2007 06:25:31 -0700 (PDT) Received: by 10.90.51.6 with HTTP; Mon, 2 Apr 2007 06:25:31 -0700 (PDT) Message-ID: Date: Mon, 2 Apr 2007 14:25:31 +0100 From: "James Strachan" To: users@activemq.apache.org Subject: Re: Deadlock in MutexTransport In-Reply-To: <733f29d80704020622x7b058b0du177aa9415b8dfc63@mail.gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Content-Disposition: inline References: <6942040.post@talk.nabble.com> <6961120.post@talk.nabble.com> <7010550.post@talk.nabble.com> <733f29d80704020622x7b058b0du177aa9415b8dfc63@mail.gmail.com> X-Virus-Checked: Checked by ClamAV on apache.org Could you post a stack trace? On 4/2/07, Dennis Cheung wrote: > Hi, > > I have similar deadlock issue on MutexTransport. > The transport thread having deadlock with another thread which is doing the > Consumer.close() > > Any one can give advise to me? > thanks > > On 10/26/06, kristoffer wrote: > > > > > > Hi, > > > > Im speculating here: is it because the persistent flag is set to false why > > i > > loose all these messages? What is this flags relation to the durable topic > > setting in JMS? As i said in the last post, i get this deadlock if i set > > the > > persistent flag to true. So how to solve this? > > > > I also find it strange that Jencks only uses two threads to process the > > messages? > > > > Another small thing is noticed (not related to this) is that lingo 1.2.1has > > an annoying printout at org.logicblaze.lingo.util.DefaultTimeoutMap line > > 128: System.out.println("Evicting inactive request for correlationID: " + > > entry); > > > > regards, > > -Kristoffer > > > > > > kristoffer wrote: > > > > > > Hi, > > > > > > Thanks for the reply. I did work when i set this URI on the broker > > > > > vm://localhost?marshal=true&broker.useJmx=false&broker.persistent=false&jms.useAsyncSend=true > > > > > > There seem to be some relation to the persistent flag=false, because if > > I > > > remove it, I see the deadlock again? > > > > > > But (with no deadlock), I loose something like 3/5 of messages? And > > there > > > seems to be only two(?) active consumer threads for the topic, even > > though > > > i have assigned 25 threads to the JCA workmanager: > > > > > > > > > > > class=" > > org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> > > > > > > > > > > > > > > > > > > > > value="se.ericsson.consumer.service.ConsumerService" /> > > > > > > > > > > > > > > class="se.ericsson.consumer.impl.ConsumerServiceImpl" singleton="true" > > /> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > class="org.apache.activemq.ra.ActiveMQResourceAdapter"> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > class="org.apache.activemq.ActiveMQConnectionFactory"> > > > > > > > > > > > > > > > Is there some throttling policy which just drops messages if it is > > > overheated? (i applied quite some load) > > > > > > regards, > > > -Kristoffer > > > > > > > > > Hiram Chirino wrote: > > >> > > >> Please enable async dispatch on your connections.. something like: > > >> > > >> vm://localhost?jms.dispatchAsync=true > > >> > > >> > > >> On 10/22/06, kristoffer wrote: > > >>> > > >>> > > >>> 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.(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. > > >>> > > >>> > > >> > > >> > > >> -- > > >> Regards, > > >> Hiram > > >> > > >> Blog: http://hiramchirino.com > > >> > > >> > > > > > > > > > > -- > > View this message in context: > > http://www.nabble.com/Deadlock-in-MutexTransport-tf2490020.html#a7010550 > > Sent from the ActiveMQ - User mailing list archive at Nabble.com. > > > > > > > -- > ---- > Dennis > -- James ------- http://radio.weblogs.com/0112098/