activemq-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Edwin Yu (JIRA)" <>
Subject [jira] [Commented] (AMQ-2798) Occaional hangs on ensureConnectionInfoSent
Date Mon, 11 Mar 2013 21:59:13 GMT


Edwin Yu commented on AMQ-2798:

Hi SuoNay,
Thank you for your feedback.  Your second point about soTimeout is a valuable suggestion for
me to try!  Since this issue happens rarely for us, I will tell if this will fix our case
over time.
About your first point, I'm confused.  We're using the "shared storage master/slave".  The
slave is simply standby and keeps trying to grab the distributed file lock.  The master has
no knowledge of the slave(s).  The Jms clients (the mule connectors in our case) can establish
connections only to the master.  I don't follow when you said "you can not talk to the master
which the slave is not attached."  Or am I mistaken somewhere?

> Occaional hangs on ensureConnectionInfoSent
> -------------------------------------------
>                 Key: AMQ-2798
>                 URL:
>             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
> {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(
> 	at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(
> 	at java.util.concurrent.ArrayBlockingQueue.take(
> 	at org.apache.activemq.transport.FutureResponse.getResult(
> 	at org.apache.activemq.transport.ResponseCorrelator.request(
> 	at org.apache.activemq.ActiveMQConnection.syncSendPacket(
> 	at org.apache.activemq.ActiveMQConnection.ensureConnectionInfoSent(
> 	- locked <0x10b9bdf8> (a java.lang.Object)
> 	at org.apache.activemq.ActiveMQConnection.createSession(
> 	at org.jencks.amqpool.SessionPool.createSession(
> 	at org.jencks.amqpool.SessionPool.makeObject(
> 	at org.apache.commons.pool.impl.GenericObjectPool.borrowObject(
> 	at org.jencks.amqpool.SessionPool.borrowSession(
> 	at org.jencks.amqpool.ConnectionPool.createSession(
> 	at org.jencks.amqpool.XaConnectionPool.createSession(
> 	at org.jencks.amqpool.PooledConnection.createSession(
> 	at
> {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://<someIP>:54663?wireFormat.maxInactivityDuration=300000)?maxReconnectAttempts=10&amp;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:

View raw message