Return-Path: X-Original-To: apmail-activemq-dev-archive@www.apache.org Delivered-To: apmail-activemq-dev-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id D2DEC9D1E for ; Fri, 8 Mar 2013 01:20:13 +0000 (UTC) Received: (qmail 21847 invoked by uid 500); 8 Mar 2013 01:20:13 -0000 Delivered-To: apmail-activemq-dev-archive@activemq.apache.org Received: (qmail 21779 invoked by uid 500); 8 Mar 2013 01:20:13 -0000 Mailing-List: contact dev-help@activemq.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@activemq.apache.org Delivered-To: mailing list dev@activemq.apache.org Received: (qmail 21767 invoked by uid 99); 8 Mar 2013 01:20:13 -0000 Received: from arcas.apache.org (HELO arcas.apache.org) (140.211.11.28) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 08 Mar 2013 01:20:13 +0000 Date: Fri, 8 Mar 2013 01:20:13 +0000 (UTC) From: "Edwin Yu (JIRA)" To: dev@activemq.apache.org Message-ID: In-Reply-To: References: Subject: [jira] [Commented] (AMQ-2798) Occaional hangs on ensureConnectionInfoSent MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-JIRA-FingerPrint: 30527f35849b9dde25b450d4833f0394 [ https://issues.apache.org/jira/browse/AMQ-2798?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13596666#comment-13596666 ] Edwin Yu commented on AMQ-2798: ------------------------------- We encountered the error too. We're on 5.7.0. Below is the thread stack of the hanging thread. It doesn't happen often, but it's there. We're using the failover uri. Name: defaultQuartzScheduler_Worker-1 State: WAITING on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@3bd8ed5f Total blocked: 10 Total waited: 10 Stack trace: sun.misc.Unsafe.park(Native Method) java.util.concurrent.locks.LockSupport.park(Unknown Source) java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(Unknown Source) java.util.concurrent.ArrayBlockingQueue.take(Unknown Source) org.apache.activemq.transport.FutureResponse.getResult(FutureResponse.java:40) org.apache.activemq.transport.ResponseCorrelator.request(ResponseCorrelator.java:87) org.apache.activemq.ActiveMQConnection.syncSendPacket(ActiveMQConnection.java:1366) org.apache.activemq.ActiveMQConnection.ensureConnectionInfoSent(ActiveMQConnection.java:1481) - locked java.lang.Object@4bdacc2e org.apache.activemq.ActiveMQConnection.start(ActiveMQConnection.java:516) org.mule.transport.jms.JmsConnector.doStart(JmsConnector.java:626) org.mule.transport.AbstractConnector$2.onTransition(AbstractConnector.java:459) org.mule.transport.AbstractConnector$2.onTransition(AbstractConnector.java:454) org.mule.lifecycle.AbstractLifecycleManager.invokePhase(AbstractLifecycleManager.java:141) org.mule.transport.ConnectorLifecycleManager.fireStartPhase(ConnectorLifecycleManager.java:63) org.mule.transport.AbstractConnector.startAfterConnect(AbstractConnector.java:453) - locked org.mule.transport.jms.activemq.ActiveMQJmsConnector@20fb07d4 org.mule.transport.AbstractConnector$5.doWork(AbstractConnector.java:1601) org.mule.retry.policies.AbstractPolicyTemplate.execute(AbstractPolicyTemplate.java:67) org.mule.transport.AbstractConnector.connect(AbstractConnector.java:1611) org.mule.transport.AbstractConnector.start(AbstractConnector.java:419) - locked org.mule.transport.jms.activemq.ActiveMQJmsConnector@20fb07d4 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) java.lang.reflect.Method.invoke(Unknown Source) org.mule.lifecycle.phases.DefaultLifecyclePhase.applyLifecycle(DefaultLifecyclePhase.java:225) org.mule.lifecycle.RegistryLifecycleManager$RegistryLifecycleCallback.onTransition(RegistryLifecycleManager.java:276) org.mule.lifecycle.RegistryLifecycleManager.invokePhase(RegistryLifecycleManager.java:155) org.mule.lifecycle.RegistryLifecycleManager.fireLifecycle(RegistryLifecycleManager.java:126) org.mule.registry.AbstractRegistryBroker.fireLifecycle(AbstractRegistryBroker.java:80) org.mule.registry.MuleRegistryHelper.fireLifecycle(MuleRegistryHelper.java:121) org.mule.lifecycle.MuleContextLifecycleManager$MuleContextLifecycleCallback.onTransition(MuleContextLifecycleManager.java:94) org.mule.lifecycle.MuleContextLifecycleManager$MuleContextLifecycleCallback.onTransition(MuleContextLifecycleManager.java:90) org.mule.lifecycle.MuleContextLifecycleManager.invokePhase(MuleContextLifecycleManager.java:72) org.mule.lifecycle.MuleContextLifecycleManager.fireLifecycle(MuleContextLifecycleManager.java:64) org.mule.DefaultMuleContext.start(DefaultMuleContext.java:202) - locked org.mule.DefaultMuleContext@13aaf18f > Occaional hangs on ensureConnectionInfoSent > ------------------------------------------- > > Key: AMQ-2798 > URL: https://issues.apache.org/jira/browse/AMQ-2798 > Project: ActiveMQ > Issue Type: Bug > Components: JMS client > Affects Versions: 5.3.2 > Reporter: Mark Chaimungkalanont > Assignee: Timothy Bish > Fix For: 5.5.0 > > Attachments: blocked-connection-patch3 > > > When connecting to the broker, the client occasionally starts to hang. A thread dump reveals: > {noformat} > "QuartzScheduler_Worker-7" prio=5 tid=0x0116f190 nid=0x1ce2400 waiting on condition [0xf1fae000..0xf1fafb30] > at sun.misc.Unsafe.park(Native Method) > at java.util.concurrent.locks.LockSupport.park(LockSupport.java:118) > at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1767) > at java.util.concurrent.ArrayBlockingQueue.take(ArrayBlockingQueue.java:341) > at org.apache.activemq.transport.FutureResponse.getResult(FutureResponse.java:40) > at org.apache.activemq.transport.ResponseCorrelator.request(ResponseCorrelator.java:80) > at org.apache.activemq.ActiveMQConnection.syncSendPacket(ActiveMQConnection.java:1233) > at org.apache.activemq.ActiveMQConnection.ensureConnectionInfoSent(ActiveMQConnection.java:1339) > - locked <0x10b9bdf8> (a java.lang.Object) > at org.apache.activemq.ActiveMQConnection.createSession(ActiveMQConnection.java:298) > at org.jencks.amqpool.SessionPool.createSession(SessionPool.java:110) > at org.jencks.amqpool.SessionPool.makeObject(SessionPool.java:78) > at org.apache.commons.pool.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:974) > at org.jencks.amqpool.SessionPool.borrowSession(SessionPool.java:53) > at org.jencks.amqpool.ConnectionPool.createSession(ConnectionPool.java:89) > at org.jencks.amqpool.XaConnectionPool.createSession(XaConnectionPool.java:51) > at org.jencks.amqpool.PooledConnection.createSession(PooledConnection.java:132) > at org.springframework.jms.support.JmsAccessor.createSession(JmsAccessor.java:200) > {noformat} > Looking closer at the code of {{ensureConnectionInfoSent}} in {{ActiveMQConnection}}, it uses the method: > {code} > public Response syncSendPacket(Command command) throws JMSException { > {code} > which never times out, possibly causing everything to hang eternally. There does seem to be an identical method that allows for a timeout. > {code} > public Response syncSendPacket(Command command, int timeout) throws JMSException { > {code} > should / can ensureConnectionInfoSent use the one with the timeout instead? > We're using the failover transport: > failover:(tcp://:54663?wireFormat.maxInactivityDuration=300000)?maxReconnectAttempts=10&initialReconnectDelay=15000 -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira