From users-return-8335-apmail-activemq-users-archive=activemq.apache.org@activemq.apache.org Mon Apr 02 13:22:45 2007 Return-Path: Delivered-To: apmail-activemq-users-archive@www.apache.org Received: (qmail 12138 invoked from network); 2 Apr 2007 13:22:44 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 2 Apr 2007 13:22:44 -0000 Received: (qmail 90721 invoked by uid 500); 2 Apr 2007 13:22:51 -0000 Delivered-To: apmail-activemq-users-archive@activemq.apache.org Received: (qmail 90706 invoked by uid 500); 2 Apr 2007 13:22:50 -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 90697 invoked by uid 500); 2 Apr 2007 13:22:50 -0000 Delivered-To: apmail-geronimo-activemq-users@geronimo.apache.org Received: (qmail 90694 invoked by uid 99); 2 Apr 2007 13:22:50 -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:22:50 -0700 X-ASF-Spam-Status: No, hits=2.0 required=10.0 tests=HTML_MESSAGE,SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (herse.apache.org: domain of hkdennis2k@gmail.com designates 66.249.90.180 as permitted sender) Received: from [66.249.90.180] (HELO ik-out-1112.google.com) (66.249.90.180) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 02 Apr 2007 06:22:41 -0700 Received: by ik-out-1112.google.com with SMTP id c21so972526ika for ; Mon, 02 Apr 2007 06:22:20 -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:references; b=YVm+mJ5qBLKKtT6TgCgfH4Le+0C21PGz7RZJIRxuGtYwGUxTxMGCofQO8I7fKvorAdUk7X2idyjOVQAHLxqMcQcBk72mG3ELJ142AN/q5mFeedD3VPOUXG5t3/VoddwdyybN26tl7jgX+4L+LDf8YaClzs0QaqkQ8wb7Lnk9cBU= 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:references; b=VgdkPh1LKWQWTM5H87qPsod6ZYID7evh3/mCc/6mZ2vHI7J9E7dm/Kj8F5yX1NNFA5Q53a1MH8joWbdXSsAwNFwWnj2HDCuZsQJ3UcPEYNbkqIyPcO3hI7llGQVNCglwbl/cPgK1F4eZR+yGM0UCO60QJvX3RAnG17+SEKvhX+4= Received: by 10.114.127.1 with SMTP id z1mr1797504wac.1175520138375; Mon, 02 Apr 2007 06:22:18 -0700 (PDT) Received: by 10.114.52.18 with HTTP; Mon, 2 Apr 2007 06:22:18 -0700 (PDT) Message-ID: <733f29d80704020622x7b058b0du177aa9415b8dfc63@mail.gmail.com> Date: Mon, 2 Apr 2007 21:22:18 +0800 From: "Dennis Cheung" To: activemq-users@geronimo.apache.org Subject: Re: Deadlock in MutexTransport In-Reply-To: <7010550.post@talk.nabble.com> MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="----=_Part_123017_24012361.1175520138285" References: <6942040.post@talk.nabble.com> <6961120.post@talk.nabble.com> <7010550.post@talk.nabble.com> X-Virus-Checked: Checked by ClamAV on apache.org ------=_Part_123017_24012361.1175520138285 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Content-Disposition: inline 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 ------=_Part_123017_24012361.1175520138285--