[ 
https://issues.apache.org/jira/browse/AMQ-2798?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17533917#comment-17533917
 ] 

Sthala Narasimhan commented on AMQ-2798:
----------------------------------------

I use CMS version 3.9.5 in my project. Occasionally, the client crashes/hangs 
at this location. I guess the problem is not yet solved.

> 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 A. Bish
>            Priority: Major
>             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://<someIP>:54663?wireFormat.maxInactivityDuration=300000)?maxReconnectAttempts=10&amp;initialReconnectDelay=15000



--
This message was sent by Atlassian Jira
(v8.20.7#820007)

Reply via email to