Note: This bug is displayed in read-only format because the product is no longer active in Red Hat Bugzilla.

Bug 1111141

Summary: HornetQException with errorType CONNECTION_TIMEDOUT shown time to time in server log during recovery
Product: [JBoss] JBoss Enterprise Application Platform 6 Reporter: Ondrej Chaloupka <ochaloup>
Component: HornetQAssignee: Clebert Suconic <csuconic>
Status: CLOSED NOTABUG QA Contact: Ondrej Chaloupka <ochaloup>
Severity: low Docs Contact: Russell Dickenson <rdickens>
Priority: unspecified    
Version: 6.2.4CC: hhovsepy, mnovak, msvehla
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2014-07-08 10:23:59 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Attachments:
Description Flags
server.log with the exception in context none

Description Ondrej Chaloupka 2014-06-19 10:54:34 UTC
Created attachment 910347 [details]
server.log with the exception in context

Time to time I can see exception that transaction manager is not able to connect to HornetQ during periodic recovery because of connection timeout [1].

In-vm connector is used and this happens just once and afterwards next connection seems to be successful.

This happens in crash recovery scenario when server is killed intentionally and then I check whether transaction was recovered correctly.


[1]
08:01:35,731 WARN  [org.hornetq.jms.server] (Periodic Recovery) HQ122013: Error in XA Recovery recover: javax.transaction.xa.XAException
 at org.hornetq.core.client.impl.ClientSessionImpl.recover(ClientSessionImpl.java:1693) [hornetq-core-client-2.3.14.1.Final-redhat-1.jar:2.3.14.1.Final-redhat-1]
 at org.hornetq.core.client.impl.DelegatingSession.recover(DelegatingSession.java:446) [hornetq-core-client-2.3.14.1.Final-redhat-1.jar:2.3.14.1.Final-redhat-1]
 at org.hornetq.jms.server.recovery.HornetQXAResourceWrapper.recover(HornetQXAResourceWrapper.java:84) [hornetq-jms-server-2.3.14.1.Final-redhat-1.jar:2.3.14.1.Final-redhat-1]
 at com.arjuna.ats.internal.jta.recovery.arjunacore.XARecoveryModule.xaRecoveryFirstPass(XARecoveryModule.java:548) [jbossjts-jacorb-4.17.15.Final-redhat-5.jar:4.17.15.Final-redhat-5]
 at com.arjuna.ats.internal.jta.recovery.arjunacore.XARecoveryModule.periodicWorkFirstPass(XARecoveryModule.java:187) [jbossjts-jacorb-4.17.15.Final-redhat-5.jar:4.17.15.Final-redhat-5]
 at com.arjuna.ats.internal.arjuna.recovery.PeriodicRecovery.doWorkInternal(PeriodicRecovery.java:743) [jbossjts-jacorb-4.17.15.Final-redhat-5.jar:4.17.15.Final-redhat-5]
 at com.arjuna.ats.internal.arjuna.recovery.PeriodicRecovery.run(PeriodicRecovery.java:371) [jbossjts-jacorb-4.17.15.Final-redhat-5.jar:4.17.15.Final-redhat-5]
Caused by: HornetQException[errorType=CONNECTION_TIMEDOUT message=HQ119014: Timed out waiting for response when sending packet 61]
 at org.hornetq.core.protocol.core.impl.ChannelImpl.sendBlocking(ChannelImpl.java:385) [hornetq-core-client-2.3.14.1.Final-redhat-1.jar:2.3.14.1.Final-redhat-1]
 at org.hornetq.core.client.impl.ClientSessionImpl.recover(ClientSessionImpl.java:1682) [hornetq-core-client-2.3.14.1.Final-redhat-1.jar:2.3.14.1.Final-redhat-1]
 ... 6 more

08:01:35,734 WARN  [com.arjuna.ats.jta] (Periodic Recovery) ARJUNA016027: JTS XARecoveryModule.xaRecovery got XA exception XAException.XAER_RMERR: javax.transaction.xa.XAException
 at org.hornetq.core.client.impl.ClientSessionImpl.recover(ClientSessionImpl.java:1693) [hornetq-core-client-2.3.14.1.Final-redhat-1.jar:2.3.14.1.Final-redhat-1]
 at org.hornetq.core.client.impl.DelegatingSession.recover(DelegatingSession.java:446) [hornetq-core-client-2.3.14.1.Final-redhat-1.jar:2.3.14.1.Final-redhat-1]
 at org.hornetq.jms.server.recovery.HornetQXAResourceWrapper.recover(HornetQXAResourceWrapper.java:84) [hornetq-jms-server-2.3.14.1.Final-redhat-1.jar:2.3.14.1.Final-redhat-1]
 at com.arjuna.ats.internal.jta.recovery.arjunacore.XARecoveryModule.xaRecoveryFirstPass(XARecoveryModule.java:548) [jbossjts-jacorb-4.17.15.Final-redhat-5.jar:4.17.15.Final-redhat-5]
 at com.arjuna.ats.internal.jta.recovery.arjunacore.XARecoveryModule.periodicWorkFirstPass(XARecoveryModule.java:187) [jbossjts-jacorb-4.17.15.Final-redhat-5.jar:4.17.15.Final-redhat-5]
 at com.arjuna.ats.internal.arjuna.recovery.PeriodicRecovery.doWorkInternal(PeriodicRecovery.java:743) [jbossjts-jacorb-4.17.15.Final-redhat-5.jar:4.17.15.Final-redhat-5]
 at com.arjuna.ats.internal.arjuna.recovery.PeriodicRecovery.run(PeriodicRecovery.java:371) [jbossjts-jacorb-4.17.15.Final-redhat-5.jar:4.17.15.Final-redhat-5]
Caused by: HornetQException[errorType=CONNECTION_TIMEDOUT message=HQ119014: Timed out waiting for response when sending packet 61]
 at org.hornetq.core.protocol.core.impl.ChannelImpl.sendBlocking(ChannelImpl.java:385) [hornetq-core-client-2.3.14.1.Final-redhat-1.jar:2.3.14.1.Final-redhat-1]
 at org.hornetq.core.client.impl.ClientSessionImpl.recover(ClientSessionImpl.java:1682) [hornetq-core-client-2.3.14.1.Final-redhat-1.jar:2.3.14.1.Final-redhat-1]
 ... 6 more

Comment 1 Ondrej Chaloupka 2014-07-08 10:23:59 UTC
During the bz cleanup I checked this bz and I didn't find way how to reproduce the problem. This problem didn't cause any data inegrity problem either and just meant a error message in log.
This was not spotted during 6.3.0 testing as I know.

Closing as not a bug.

In case that we would hit this in some future we would reopen this bz.

Comment 2 Ondrej Chaloupka 2014-12-17 12:47:53 UTC
I've hit this during testing 6.4.0. The enhanced log is added here [1].
We did a short research on this and it seems that it could be caused by some synchronization issue on HornetQ side. Following description is only hypothesis.
There is used inVM connector when JTS implementation calls rollback in one thread (RequestProcessor-10). As rollback was already called on specific xid then hornetq is expected to return XAER_NOTA which happens. But meanwhile there is second thread (Periodic Recovery) which calls 'recover'. It seems that recover is not successful as needs to wait till rollback ends its work which takes some time and due to a timeout exception is thrown.


[1]
TRACE [com.arjuna.ats.jtax] (RequestProcessor-10) XAResourceRecord.rollback for < 131072, 29, 36, 0000000000-1-11016-7692-88-4-436184-11414-580006349, 0000000000-1-11016-7692-88-4-436184-11414-580006800000000 >
INFO  [org.jboss.as.test.jbossts.common.TestXAResourceRecoveryHelper] (Periodic Recovery) getXAResources()
DEBUG [com.arjuna.ats.jta] (Periodic Recovery) xarecovery of RecoveryOnlyEJBXAResource{receiverContext=EJBReceiverContext{clientContext=org.jboss.ejb.client.EJBClientContext@9da95e28, receiver=org.jboss.as.ejb3.remote.LocalEjbReceiver@f4fb4d5d}, transactionOriginNodeIdentifier='1'}
DEBUG [com.arjuna.ats.jta] (Periodic Recovery) Found 0 xids in doubt
TRACE [com.arjuna.ats.arjuna] (Periodic Recovery) RecoveryXids updateIfEquivalentRM2 RecoveryOnlyEJBXAResource{receiverContext=EJBReceiverContext{clientContext=org.jboss.ejb.client.EJBClientContext@9da95e28, receiver=org.jboss.as.ejb3.remote.LocalEjbReceiver@f4fb4d5d}, transactionOriginNodeIdentifier='1'} 1418596148116
DEBUG [com.arjuna.ats.jta] (Periodic Recovery) xarecovery of HornetQXAResourceWrapper [serverLocator=ServerLocatorImpl [initialConnectors=[TransportConfiguration(name=7c6bf3f9-83e0-11e4-8ca6-a59f5c248488, factory=org-hornetq-core-remoting-impl-invm-InVMConnectorFactory) ?server-id=0], discoveryGroupConfiguration=null], csf=ClientSessionFactoryImpl [serverLocator=ServerLocatorImpl [initialConnectors=[TransportConfiguration(name=7c6bf3f9-83e0-11e4-8ca6-a59f5c248488, factory=org-hornetq-core-remoting-impl-invm-InVMConnectorFactory) ?server-id=0], discoveryGroupConfiguration=null], connectorConfig=TransportConfiguration(name=7c6bf3f9-83e0-11e4-8ca6-a59f5c248488, factory=org-hornetq-core-remoting-impl-invm-InVMConnectorFactory) ?server-id=0, backupConfig=null], delegate=DelegatingSession [session=ClientSessionImpl [name=7fbb1efd-83e0-11e4-8ca6-a59f5c248488, username=null, closed=false, factory = ClientSessionFactoryImpl [serverLocator=ServerLocatorImpl [initialConnectors=[TransportConfiguration(name=7c6bf3f9-83e0-11e4-8ca6-a59f5c248488, factory=org-hornetq-core-remoting-impl-invm-InVMConnectorFactory) ?server-id=0], discoveryGroupConfiguration=null], connectorConfig=TransportConfiguration(name=7c6bf3f9-83e0-11e4-8ca6-a59f5c248488, factory=org-hornetq-core-remoting-impl-invm-InVMConnectorFactory) ?server-id=0, backupConfig=null], metaData=()]@5361c8f8], xaRecoveryConfigs=[XARecoveryConfig [transportConfiguration = [TransportConfiguration(name=7c6bf3f9-83e0-11e4-8ca6-a59f5c248488, factory=org-hornetq-core-remoting-impl-invm-InVMConnectorFactory) ?server-id=0], discoveryConfiguration = null, username=null, password=****]], instance=441802302]
WARN  [org.hornetq.jms.server] (Periodic Recovery) HQ122013: Error in XA Recovery recover: javax.transaction.xa.XAException
 at org.hornetq.core.client.impl.ClientSessionImpl.recover(ClientSessionImpl.java:1693) [hornetq-core-client-2.3.24.Final-redhat-1.jar:2.3.24.Final-redhat-1]
 at org.hornetq.core.client.impl.DelegatingSession.recover(DelegatingSession.java:446) [hornetq-core-client-2.3.24.Final-redhat-1.jar:2.3.24.Final-redhat-1]
 at org.hornetq.jms.server.recovery.HornetQXAResourceWrapper.recover(HornetQXAResourceWrapper.java:84) [hornetq-jms-server-2.3.24.Final-redhat-1.jar:2.3.24.Final-redhat-1]
 at com.arjuna.ats.internal.jta.recovery.arjunacore.XARecoveryModule.xaRecoveryFirstPass(XARecoveryModule.java:541) [jbossjts-jacorb-4.17.26.Final-redhat-1.jar:4.17.26.Final-redhat-1]
 at com.arjuna.ats.internal.jta.recovery.arjunacore.XARecoveryModule.periodicWorkFirstPass(XARecoveryModule.java:181) [jbossjts-jacorb-4.17.26.Final-redhat-1.jar:4.17.26.Final-redhat-1]
 at com.arjuna.ats.internal.arjuna.recovery.PeriodicRecovery.doWorkInternal(PeriodicRecovery.java:747) [jbossjts-jacorb-4.17.26.Final-redhat-1.jar:4.17.26.Final-redhat-1]
 at com.arjuna.ats.internal.arjuna.recovery.PeriodicRecovery.run(PeriodicRecovery.java:375) [jbossjts-jacorb-4.17.26.Final-redhat-1.jar:4.17.26.Final-redhat-1]
Caused by: HornetQException[errorType=CONNECTION_TIMEDOUT message=HQ119014: Timed out waiting for response when sending packet 61]
 at org.hornetq.core.protocol.core.impl.ChannelImpl.sendBlocking(ChannelImpl.java:390) [hornetq-core-client-2.3.24.Final-redhat-1.jar:2.3.24.Final-redhat-1]
 at org.hornetq.core.client.impl.ClientSessionImpl.recover(ClientSessionImpl.java:1682) [hornetq-core-client-2.3.24.Final-redhat-1.jar:2.3.24.Final-redhat-1]
 ... 6 more
WARN  [com.arjuna.ats.jta] (Periodic Recovery) ARJUNA016027: JTS XARecoveryModule.xaRecovery got XA exception XAException.XAER_RMERR: javax.transaction.xa.XAException
 at org.hornetq.core.client.impl.ClientSessionImpl.recover(ClientSessionImpl.java:1693) [hornetq-core-client-2.3.24.Final-redhat-1.jar:2.3.24.Final-redhat-1]
 at org.hornetq.core.client.impl.DelegatingSession.recover(DelegatingSession.java:446) [hornetq-core-client-2.3.24.Final-redhat-1.jar:2.3.24.Final-redhat-1]
 at org.hornetq.jms.server.recovery.HornetQXAResourceWrapper.recover(HornetQXAResourceWrapper.java:84) [hornetq-jms-server-2.3.24.Final-redhat-1.jar:2.3.24.Final-redhat-1]
 at com.arjuna.ats.internal.jta.recovery.arjunacore.XARecoveryModule.xaRecoveryFirstPass(XARecoveryModule.java:541) [jbossjts-jacorb-4.17.26.Final-redhat-1.jar:4.17.26.Final-redhat-1]
 at com.arjuna.ats.internal.jta.recovery.arjunacore.XARecoveryModule.periodicWorkFirstPass(XARecoveryModule.java:181) [jbossjts-jacorb-4.17.26.Final-redhat-1.jar:4.17.26.Final-redhat-1]
 at com.arjuna.ats.internal.arjuna.recovery.PeriodicRecovery.doWorkInternal(PeriodicRecovery.java:747) [jbossjts-jacorb-4.17.26.Final-redhat-1.jar:4.17.26.Final-redhat-1]
 at com.arjuna.ats.internal.arjuna.recovery.PeriodicRecovery.run(PeriodicRecovery.java:375) [jbossjts-jacorb-4.17.26.Final-redhat-1.jar:4.17.26.Final-redhat-1]
Caused by: HornetQException[errorType=CONNECTION_TIMEDOUT message=HQ119014: Timed out waiting for response when sending packet 61]
 at org.hornetq.core.protocol.core.impl.ChannelImpl.sendBlocking(ChannelImpl.java:390) [hornetq-core-client-2.3.24.Final-redhat-1.jar:2.3.24.Final-redhat-1]
 at org.hornetq.core.client.impl.ClientSessionImpl.recover(ClientSessionImpl.java:1682) [hornetq-core-client-2.3.24.Final-redhat-1.jar:2.3.24.Final-redhat-1]
 ... 6 more
DEBUG [com.arjuna.ats.jtax] (RequestProcessor-10) XARecoveryResourceImple.notAProblem - no error with XAER_NOTA on  rollback