activemq-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Mark Chaimungkalanont (JIRA)" <>
Subject [jira] Created: (AMQ-2798) Occaional hangs on
Date Fri, 25 Jun 2010 06:49:51 GMT
Occaional hangs on 

                 Key: AMQ-2798
             Project: ActiveMQ
          Issue Type: Bug
          Components: JMS client
    Affects Versions: 5.3.2
            Reporter: Mark Chaimungkalanont

When connecting to the broker, the client occasionally starts to hang. A thread dump reveals:

"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(

Looking closer at the code of {{ensureConnectionInfoSent}} in {{ActiveMQConnection}}, it uses
the method:

public Response syncSendPacket(Command command) throws JMSException {

which never times out, possibly causing everything to hang eternally. There does seem to be
an identical method that allows for a timeout. 

    public Response syncSendPacket(Command command, int timeout) throws JMSException {

should / can ensureConnectionInfoSent use the one with the timeout instead?

We're using the failover transport:

This message is automatically generated by JIRA.
You can reply to this email to add a comment to the issue online.

View raw message