You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@activemq.apache.org by "Anton Roskvist (Jira)" <ji...@apache.org> on 2020/08/28 13:06:00 UTC

[jira] [Comment Edited] (AMQ-6763) Thread hangs on setXid

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

Anton Roskvist edited comment on AMQ-6763 at 8/28/20, 1:05 PM:
---------------------------------------------------------------

I have also run in to this issue but when running the ActiveMQ RA on jboss 6 against the Artemis broker. Have not been able to figure out whats happening yet either.

 

I should add though that I have also seen this lock at commit and end, all stack traces ending at:
org.apache.activemq.transport.FutureResponse.getResult(FutureResponse.java:48

Example:
"default-threads - 119" #554 prio=5 os_prio=0 tid=0x00007f73700b0000 nid=0x52c waiting on condition [0x00007f732bd73000]
 java.lang.Thread.State: WAITING (parking)
 at sun.misc.Unsafe.park(Native Method)
 - parking to wait for <0x00000006bf87fec8> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
 at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
 at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2039)
 at java.util.concurrent.ArrayBlockingQueue.take(ArrayBlockingQueue.java:403)
 at org.apache.activemq.transport.FutureResponse.getResult(FutureResponse.java:48)
 at org.apache.activemq.transport.ResponseCorrelator.request(ResponseCorrelator.java:87)
 at org.apache.activemq.ActiveMQConnection.syncSendPacket(ActiveMQConnection.java:1392)
 at org.apache.activemq.ActiveMQConnection.syncSendPacket(ActiveMQConnection.java:1436)
 at org.apache.activemq.TransactionContext.commit(TransactionContext.java:585)
 at org.apache.activemq.ra.LocalAndXATransaction.commit(LocalAndXATransaction.java:92)
 at org.jboss.jca.core.tx.jbossts.XAResourceWrapperImpl.commit(XAResourceWrapperImpl.java:107)
 at com.arjuna.ats.internal.jta.resources.arjunacore.XAResourceRecord.topLevelCommit(XAResourceRecord.java:478)
 at com.arjuna.ats.arjuna.coordinator.BasicAction.doCommit(BasicAction.java:2770)
 at com.arjuna.ats.arjuna.coordinator.BasicAction.doCommit(BasicAction.java:2686)
 at com.arjuna.ats.arjuna.coordinator.BasicAction.phase2Commit(BasicAction.java:1837)
 - locked <0x00000006bf880028> (a com.arjuna.ats.internal.jta.transaction.arjunacore.AtomicAction)
 at com.arjuna.ats.arjuna.coordinator.BasicAction.End(BasicAction.java:1517)
 - locked <0x00000006bf880028> (a com.arjuna.ats.internal.jta.transaction.arjunacore.AtomicAction)
 at com.arjuna.ats.arjuna.coordinator.TwoPhaseCoordinator.end(TwoPhaseCoordinator.java:98)
 at com.arjuna.ats.arjuna.AtomicAction.commit(AtomicAction.java:162)
 at com.arjuna.ats.internal.jta.transaction.arjunacore.TransactionImple.commitAndDisassociate(TransactionImple.java:1231)
 at com.arjuna.ats.internal.jta.transaction.arjunacore.BaseTransaction.commit(BaseTransaction.java:126)
 at com.arjuna.ats.jbossatx.BaseTransactionManagerDelegate.commit(BaseTransactionManagerDelegate.java:75)
 at org.jboss.as.ejb3.inflow.MessageEndpointInvocationHandler.afterDelivery(MessageEndpointInvocationHandler.java:72)
 at sun.reflect.GeneratedMethodAccessor162.invoke(Unknown Source)
 at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
 at java.lang.reflect.Method.invoke(Method.java:498)
 at org.jboss.as.ejb3.inflow.AbstractInvocationHandler.handle(AbstractInvocationHandler.java:60)
 at org.jboss.as.ejb3.inflow.MessageEndpointInvocationHandler.doInvoke(MessageEndpointInvocationHandler.java:136)
 at org.jboss.as.ejb3.inflow.AbstractInvocationHandler.invoke(AbstractInvocationHandler.java:73)
 at com.sun.proxy.$Proxy68.afterDelivery(Unknown Source)
 at org.apache.activemq.ra.MessageEndpointProxy$MessageEndpointAlive.afterDelivery(MessageEndpointProxy.java:128)
 at org.apache.activemq.ra.MessageEndpointProxy.afterDelivery(MessageEndpointProxy.java:69)
 at org.apache.activemq.ra.ServerSessionImpl.afterDelivery(ServerSessionImpl.java:225)
 at org.apache.activemq.ActiveMQSession.run(ActiveMQSession.java:1072)
 - locked <0x00000006b9ac35e8> (a java.lang.Object)
 at org.apache.activemq.ra.ServerSessionImpl.run(ServerSessionImpl.java:169)
 at org.jboss.jca.core.workmanager.WorkWrapper.run(WorkWrapper.java:215)
 at org.jboss.threads.SimpleDirectExecutor.execute(SimpleDirectExecutor.java:33)
 at org.jboss.threads.QueueExecutor.runTask(QueueExecutor.java:808)
 at org.jboss.threads.QueueExecutor.access$100(QueueExecutor.java:45)
 at org.jboss.threads.QueueExecutor$Worker.run(QueueExecutor.java:849)
 at java.lang.Thread.run(Thread.java:748)
 at org.jboss.threads.JBossThread.run(JBossThread.java:122)

I tried with the option "jms.connectResponseTimeout=5000" on the connectionUrl but that made no difference that I could tell.

 

Br,

Anton


was (Author: antonroskvist):
I have also run in to this issue but when running the ActiveMQ RA on jboss 6 against the Artemis broker. Have not been able to figure out whats happening yet either.

> Thread hangs on setXid
> ----------------------
>
>                 Key: AMQ-6763
>                 URL: https://issues.apache.org/jira/browse/AMQ-6763
>             Project: ActiveMQ
>          Issue Type: Bug
>          Components: XA
>    Affects Versions: 5.14.5
>            Reporter: Jakub
>            Priority: Minor
>
> I've noticed issues with distributed transactions (XA) on karaf when using ActiveMQ with JDBC storeage (postgres). After some time (it isn't deterministic) I've observed that on database side 'idle in transaction' appeared (it's other schema than used by ActiveMQ). After debugging it seams that the reason why transactions are hanging is ActiveMQ and  org.apache.activemq.transport.FutureResponse.getResult method that waits forever for a response.
> {code}
>    java.lang.Thread.State: WAITING (parking)
>         at sun.misc.Unsafe.park(Native Method)
>         - parking to wait for  <0x0000000768585aa8> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
>         at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
>         at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2039)
>         at java.util.concurrent.ArrayBlockingQueue.take(ArrayBlockingQueue.java:403)
>         at org.apache.activemq.transport.FutureResponse.getResult(FutureResponse.java:48)
>         at org.apache.activemq.transport.ResponseCorrelator.request(ResponseCorrelator.java:87)
>         at org.apache.activemq.ActiveMQConnection.syncSendPacket(ActiveMQConnection.java:1388)
>         at org.apache.activemq.ActiveMQConnection.syncSendPacket(ActiveMQConnection.java:1428)
>         at org.apache.activemq.TransactionContext.setXid(TransactionContext.java:751)
>         at org.apache.activemq.TransactionContext.invokeBeforeEnd(TransactionContext.java:424)
>         at org.apache.activemq.TransactionContext.end(TransactionContext.java:408)
>         at org.apache.geronimo.transaction.manager.WrapperNamedXAResource.end(WrapperNamedXAResource.java:61)
>         at org.apache.geronimo.transaction.manager.TransactionImpl.endResources(TransactionImpl.java:588)
>         at org.apache.geronimo.transaction.manager.TransactionImpl.endResources(TransactionImpl.java:567)
>         at org.apache.geronimo.transaction.manager.TransactionImpl.beforePrepare(TransactionImpl.java:414)
>         at org.apache.geronimo.transaction.manager.TransactionImpl.commit(TransactionImpl.java:262)
>         at org.apache.geronimo.transaction.manager.TransactionManagerImpl.commit(TransactionManagerImpl.java:252)
>         at org.springframework.transaction.jta.JtaTransactionManager.doCommit(JtaTransactionManager.java:1020)
>         at org.springframework.transaction.support.AbstractPlatformTransactionManager.processCommit(AbstractPlatformTransactionManager.java:761)
>         at org.springframework.transaction.support.AbstractPlatformTransactionManager.commit(AbstractPlatformTransactionManager.java:730)
>         at org.apache.aries.transaction.internal.AriesPlatformTransactionManager.commit(AriesPlatformTransactionManager.java:75)
>         at org.springframework.transaction.interceptor.TransactionAspectSupport.commitTransactionAfterReturning(TransactionAspectSupport.java:484)
>         at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:291)
>         at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:96)
>         at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
>         at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:655)
> ..... custom service
> {code}
> {code}
> "DefaultMessageListenerContainer-3" #13199 prio=5 os_prio=0 tid=0x00007fb8687e6800 nid=0x3954 waiting on condition [0x00007fb7b0b98000]
>    java.lang.Thread.State: WAITING (parking)
>         at sun.misc.Unsafe.park(Native Method)
>         - parking to wait for  <0x0000000765f532c0> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
>         at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
>         at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2039)
>         at java.util.concurrent.ArrayBlockingQueue.take(ArrayBlockingQueue.java:403)
>         at org.apache.activemq.transport.FutureResponse.getResult(FutureResponse.java:48)
>         at org.apache.activemq.transport.ResponseCorrelator.request(ResponseCorrelator.java:87)
>         at org.apache.activemq.ActiveMQConnection.syncSendPacket(ActiveMQConnection.java:1388)
>         at org.apache.activemq.ActiveMQConnection.syncSendPacket(ActiveMQConnection.java:1428)
>         at org.apache.activemq.TransactionContext.setXid(TransactionContext.java:751)
>         at org.apache.activemq.TransactionContext.invokeBeforeEnd(TransactionContext.java:424)
>         at org.apache.activemq.TransactionContext.end(TransactionContext.java:408)
>         at org.apache.geronimo.transaction.manager.WrapperNamedXAResource.end(WrapperNamedXAResource.java:61)
>         at org.apache.geronimo.transaction.manager.TransactionImpl.endResources(TransactionImpl.java:588)
>         at org.apache.geronimo.transaction.manager.TransactionImpl.endResources(TransactionImpl.java:567)
>         at org.apache.geronimo.transaction.manager.TransactionImpl.beforePrepare(TransactionImpl.java:414)
>         at org.apache.geronimo.transaction.manager.TransactionImpl.commit(TransactionImpl.java:262)
>         at org.apache.geronimo.transaction.manager.TransactionManagerImpl.commit(TransactionManagerImpl.java:252)
>         at org.springframework.transaction.jta.JtaTransactionManager.doCommit(JtaTransactionManager.java:1020)
>         at org.springframework.transaction.support.AbstractPlatformTransactionManager.processCommit(AbstractPlatformTransactionManager.java:761)
>         at org.springframework.transaction.support.AbstractPlatformTransactionManager.commit(AbstractPlatformTransactionManager.java:730)
>         at org.apache.aries.transaction.internal.AriesPlatformTransactionManager.commit(AriesPlatformTransactionManager.java:75)
>         at org.springframework.jms.listener.AbstractPollingMessageListenerContainer.receiveAndExecute(AbstractPollingMessageListenerContainer.java:245)
>         at org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.invokeListener(DefaultMessageListenerContainer.java:1164)
>         at org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.executeOngoingLoop(DefaultMessageListenerContainer.java:1156)
>         at org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.run(DefaultMessageListenerContainer.java:1053)
>         at java.lang.Thread.run(Thread.java:748)
> {code}



--
This message was sent by Atlassian Jira
(v8.3.4#803005)