Uploaded image for project: 'WildFly'
  1. WildFly
  2. WFLY-3985

XA_RBROLLBACK returned upon a XA forget branch request

    XMLWordPrintable

Details

    • Bug
    • Resolution: Obsolete
    • Major
    • None
    • None
    • EJB
    • None

    Description

      The stacktraces [1] show ejb remoting looking up the transaction on a recovery pass and finding that the transaction has rolled back.
      Recovery tells ejb remoting (it is enlisting an XA resource) to forget about a branch.
      Ejb remoting on the remote node gets the forget request and tries to import the transaction and gets an exception because the txn has rolled back.

      Since the forget request is to tell remoting that it no longer needs to keep any state associated with the branch the expectation would be for remoting to catch the exception and handle it gracefully. Per the stacktrace, it looks like remoting should catch the XAException.XA_RBROLLBACK from the getImportedTransaction() call (do whatever they need to do internally) and then return one of the valid codes: XA_OK is probably the correct one as returning XA_RBROLLBACK would be out of spec.

      [1]
      WARN [com.arjuna.ats.jta] (Periodic Recovery) ARJUNA016037: Could not find new XAResource to use for recovering non-serializable XAResource XAResourceRecord < resource:null, txid:< formatId=131077, gtrid_length=29, bqual_length=36, tx_uid=0:ffff0a1ef4ed:4e73c967:526fc3c7:b1, node_name=1, branch_uid=0:ffff0a1ef4ed:4e73c967:526fc3c7:b2, subordinatenodename=null, eis_name=unknown eis name >, heuristic: TwoPhaseOutcome.FINISH_OK com.arjuna.ats.internal.jta.resources.arjunacore.XAResourceRecord@1c3c1d18 >
      WARN [com.arjuna.ats.jta] (Periodic Recovery) ARJUNA016038: No XAResource to recover < formatId=131077, gtrid_length=29, bqual_length=36, tx_uid=0:ffff0a1ef4ed:4e73c967:526fc3c7:b1, node_name=1, branch_uid=0:ffff0a1ef4ed:4e73c967:526fc3c7:b2, subordinatenodename=null, eis_name=unknown eis name >
      WARN [com.arjuna.ats.jta] (Periodic Recovery) ARJUNA016037: Could not find new XAResource to use for recovering non-serializable XAResource XAResourceRecord < resource:null, txid:< formatId=131077, gtrid_length=29, bqual_length=36, tx_uid=0:ffff0a1ef4ed:4e73c967:526fc3c7:8f, node_name=1, branch_uid=0:ffff0a1ef4ed:4e73c967:526fc3c7:90, subordinatenodename=null, eis_name=unknown eis name >, heuristic: TwoPhaseOutcome.FINISH_OK com.arjuna.ats.internal.jta.resources.arjunacore.XAResourceRecord@4ff5d522 >
      WARN [com.arjuna.ats.jta] (Periodic Recovery) ARJUNA016038: No XAResource to recover < formatId=131077, gtrid_length=29, bqual_length=36, tx_uid=0:ffff0a1ef4ed:4e73c967:526fc3c7:8f, node_name=1, branch_uid=0:ffff0a1ef4ed:4e73c967:526fc3c7:90, subordinatenodename=null, eis_name=unknown eis name >
      ERROR [stderr] (Periodic Recovery) javax.transaction.xa.XAException
      INFO [stdout] (Periodic Recovery) ret:false for msg:javax.transaction.xa.XAException
      ERROR [stderr] (Periodic Recovery) at com.arjuna.ats.internal.jta.transaction.arjunacore.jca.TransactionImporterImple.getImportedTransaction(TransactionImporterImple.java:178)
      INFO [stdout] (Periodic Recovery) ret:false for msg: at com.arjuna.ats.internal.jta.transaction.arjunacore.jca.TransactionImporterImple.getImportedTransaction(TransactionImporterImple.java:178)
      ERROR [stderr] (Periodic Recovery) at org.jboss.as.ejb3.remote.EJBRemoteTransactionsRepository.getImportedTransaction(EJBRemoteTransactionsRepository.java:150)
      INFO [stdout] (Periodic Recovery) ret:false for msg: at org.jboss.as.ejb3.remote.EJBRemoteTransactionsRepository.getImportedTransaction(EJBRemoteTransactionsRepository.java:150)
      ERROR [stderr] (Periodic Recovery) at org.jboss.as.ejb3.remote.protocol.versionone.XidTransactionRollbackTask.manageTransaction(XidTransactionRollbackTask.java:53)
      INFO [stdout] (Periodic Recovery) ret:false for msg: at org.jboss.as.ejb3.remote.protocol.versionone.XidTransactionRollbackTask.manageTransaction(XidTransactionRollbackTask.java:53)
      ERROR [stderr] (Periodic Recovery) at org.jboss.as.ejb3.remote.protocol.versionone.XidTransactionManagementTask.run(XidTransactionManagementTask.java:68)
      INFO [stdout] (Periodic Recovery) ret:false for msg: at org.jboss.as.ejb3.remote.protocol.versionone.XidTransactionManagementTask.run(XidTransactionManagementTask.java:68)
      ERROR [stderr] (Periodic Recovery) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
      INFO [stdout] (Periodic Recovery) ret:false for msg: at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
      ERROR [stderr] (Periodic Recovery) at java.util.concurrent.FutureTask.run(FutureTask.java:262)
      INFO [stdout] (Periodic Recovery) ret:false for msg: at java.util.concurrent.FutureTask.run(FutureTask.java:262)
      ERROR [stderr] (Periodic Recovery) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
      INFO [stdout] (Periodic Recovery) ret:false for msg: at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
      ERROR [stderr] (Periodic Recovery) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
      INFO [stdout] (Periodic Recovery) ret:false for msg: at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
      ERROR [stderr] (Periodic Recovery) at java.lang.Thread.run(Thread.java:744)
      INFO [stdout] (Periodic Recovery) ret:false for msg: at java.lang.Thread.run(Thread.java:744)
      ERROR [stderr] (Periodic Recovery) at org.jboss.threads.JBossThread.run(JBossThread.java:122)
      INFO [stdout] (Periodic Recovery) ret:false for msg: at org.jboss.threads.JBossThread.run(JBossThread.java:122)
      ERROR [stderr] (Periodic Recovery) at ...asynchronous invocation...(Unknown Source)
      INFO [stdout] (Periodic Recovery) ret:false for msg: at ...asynchronous invocation...(Unknown Source)
      ERROR [stderr] (Periodic Recovery) at org.jboss.ejb.client.remoting.InvocationExceptionResponseHandler$MethodInvocationExceptionResultProducer.getResult(InvocationExceptionResponseHandler.java:99)
      INFO [stdout] (Periodic Recovery) ret:false for msg: at org.jboss.ejb.client.remoting.InvocationExceptionResponseHandler$MethodInvocationExceptionResultProducer.getResult(InvocationExceptionResponseHandler.java:99)
      ERROR [stderr] (Periodic Recovery) at org.jboss.ejb.client.remoting.RemotingConnectionEJBReceiver.sendRollback(RemotingConnectionEJBReceiver.java:360)
      INFO [stdout] (Periodic Recovery) ret:false for msg: at org.jboss.ejb.client.remoting.RemotingConnectionEJBReceiver.sendRollback(RemotingConnectionEJBReceiver.java:360)
      ERROR [stderr] (Periodic Recovery) at org.jboss.ejb.client.RecoveryOnlyEJBXAResource.rollback(RecoveryOnlyEJBXAResource.java:103)
      INFO [stdout] (Periodic Recovery) ret:false for msg: at org.jboss.ejb.client.RecoveryOnlyEJBXAResource.rollback(RecoveryOnlyEJBXAResource.java:103)
      ERROR [stderr] (Periodic Recovery) at com.arjuna.ats.internal.jta.recovery.arjunacore.XARecoveryModule.handleOrphan(XARecoveryModule.java:741)
      INFO [stdout] (Periodic Recovery) ret:false for msg: at com.arjuna.ats.internal.jta.recovery.arjunacore.XARecoveryModule.handleOrphan(XARecoveryModule.java:741)
      ERROR [stderr] (Periodic Recovery) at com.arjuna.ats.internal.jta.recovery.arjunacore.XARecoveryModule.xaRecoverySecondPass(XARecoveryModule.java:647)
      INFO [stdout] (Periodic Recovery) ret:false for msg: at com.arjuna.ats.internal.jta.recovery.arjunacore.XARecoveryModule.xaRecoverySecondPass(XARecoveryModule.java:647)
      ERROR [stderr] (Periodic Recovery) at com.arjuna.ats.internal.jta.recovery.arjunacore.XARecoveryModule.bottomUpRecovery(XARecoveryModule.java:419)
      INFO [stdout] (Periodic Recovery) ret:false for msg: at com.arjuna.ats.internal.jta.recovery.arjunacore.XARecoveryModule.bottomUpRecovery(XARecoveryModule.java:419)
      ERROR [stderr] (Periodic Recovery) at com.arjuna.ats.internal.jta.recovery.arjunacore.XARecoveryModule.periodicWorkSecondPass(XARecoveryModule.java:194)
      INFO [stdout] (Periodic Recovery) ret:false for msg: at com.arjuna.ats.internal.jta.recovery.arjunacore.XARecoveryModule.periodicWorkSecondPass(XARecoveryModule.java:194)
      ERROR [stderr] (Periodic Recovery) at com.arjuna.ats.internal.arjuna.recovery.PeriodicRecovery.doWorkInternal(PeriodicRecovery.java:789)
      INFO [stdout] (Periodic Recovery) ret:false for msg: at com.arjuna.ats.internal.arjuna.recovery.PeriodicRecovery.doWorkInternal(PeriodicRecovery.java:789)
      ERROR [stderr] (Periodic Recovery) at com.arjuna.ats.internal.arjuna.recovery.PeriodicRecovery.run(PeriodicRecovery.java:371)
      INFO [stdout] (Periodic Recovery) ret:false for msg: at com.arjuna.ats.internal.arjuna.recovery.PeriodicRecovery.run(PeriodicRecovery.java:371)
      WARN [com.arjuna.ats.jta] (Periodic Recovery) ARJUNA016006: Local XARecoveryModule.xaRecovery - forget threw exception: javax.transaction.xa.XAException
      at com.arjuna.ats.internal.jta.transaction.arjunacore.jca.TransactionImporterImple.getImportedTransaction(TransactionImporterImple.java:178) [jbossjts-jacorb-4.17.4.Final-redhat-2.jar:4.17.4.Final-redhat-2]
      at org.jboss.as.ejb3.remote.EJBRemoteTransactionsRepository.getImportedTransaction(EJBRemoteTransactionsRepository.java:150)
      at org.jboss.as.ejb3.remote.protocol.versionone.XidTransactionForgetTask.manageTransaction(XidTransactionForgetTask.java:50)
      at org.jboss.as.ejb3.remote.protocol.versionone.XidTransactionManagementTask.run(XidTransactionManagementTask.java:68)
      at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) [rt.jar:1.7.0_45]
      at java.util.concurrent.FutureTask.run(FutureTask.java:262) [rt.jar:1.7.0_45]
      at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) [rt.jar:1.7.0_45]
      at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) [rt.jar:1.7.0_45]
      at java.lang.Thread.run(Thread.java:744) [rt.jar:1.7.0_45]
      at org.jboss.threads.JBossThread.run(JBossThread.java:122)
      at ...asynchronous invocation...(Unknown Source)
      at org.jboss.ejb.client.remoting.InvocationExceptionResponseHandler$MethodInvocationExceptionResultProducer.getResult(InvocationExceptionResponseHandler.java:99)
      at org.jboss.ejb.client.remoting.RemotingConnectionEJBReceiver.sendForget(RemotingConnectionEJBReceiver.java:430)
      at org.jboss.ejb.client.RecoveryOnlyEJBXAResource.forget(RecoveryOnlyEJBXAResource.java:68)
      at com.arjuna.ats.internal.jta.recovery.arjunacore.XARecoveryModule.xaRecoverySecondPass(XARecoveryModule.java:675) [jbossjts-jacorb-4.17.4.Final-redhat-2.jar:4.17.4.Final-redhat-2]
      at com.arjuna.ats.internal.jta.recovery.arjunacore.XARecoveryModule.bottomUpRecovery(XARecoveryModule.java:419) [jbossjts-jacorb-4.17.4.Final-redhat-2.jar:4.17.4.Final-redhat-2]
      at com.arjuna.ats.internal.jta.recovery.arjunacore.XARecoveryModule.periodicWorkSecondPass(XARecoveryModule.java:194) [jbossjts-jacorb-4.17.4.Final-redhat-2.jar:4.17.4.Final-redhat-2]
      at com.arjuna.ats.internal.arjuna.recovery.PeriodicRecovery.doWorkInternal(PeriodicRecovery.java:789) [jbossjts-jacorb-4.17.4.Final-redhat-2.jar:4.17.4.Final-redhat-2]
      at com.arjuna.ats.internal.arjuna.recovery.PeriodicRecovery.run(PeriodicRecovery.java:371) [jbossjts-jacorb-4.17.4.Final-redhat-2.jar:4.17.4.Final-redhat-2]

      ERROR [stderr] (Periodic Recovery) javax.transaction.xa.XAException
      INFO [stdout] (Periodic Recovery) ret:false for msg:javax.transaction.xa.XAException
      ERROR [stderr] (Periodic Recovery) at com.arjuna.ats.internal.jta.transaction.arjunacore.jca.TransactionImporterImple.getImportedTransaction(TransactionImporterImple.java:178)
      INFO [stdout] (Periodic Recovery) ret:false for msg: at com.arjuna.ats.internal.jta.transaction.arjunacore.jca.TransactionImporterImple.getImportedTransaction(TransactionImporterImple.java:178)
      ERROR [stderr] (Periodic Recovery) at org.jboss.as.ejb3.remote.EJBRemoteTransactionsRepository.getImportedTransaction(EJBRemoteTransactionsRepository.java:150)
      INFO [stdout] (Periodic Recovery) ret:false for msg: at org.jboss.as.ejb3.remote.EJBRemoteTransactionsRepository.getImportedTransaction(EJBRemoteTransactionsRepository.java:150)
      ERROR [stderr] (Periodic Recovery) at org.jboss.as.ejb3.remote.protocol.versionone.XidTransactionRollbackTask.manageTransaction(XidTransactionRollbackTask.java:53)
      INFO [stdout] (Periodic Recovery) ret:false for msg: at org.jboss.as.ejb3.remote.protocol.versionone.XidTransactionRollbackTask.manageTransaction(XidTransactionRollbackTask.java:53)
      ERROR [stderr] (Periodic Recovery) at org.jboss.as.ejb3.remote.protocol.versionone.XidTransactionManagementTask.run(XidTransactionManagementTask.java:68)
      INFO [stdout] (Periodic Recovery) ret:false for msg: at org.jboss.as.ejb3.remote.protocol.versionone.XidTransactionManagementTask.run(XidTransactionManagementTask.java:68)
      ERROR [stderr] (Periodic Recovery) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
      INFO [stdout] (Periodic Recovery) ret:false for msg: at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
      ERROR [stderr] (Periodic Recovery) at java.util.concurrent.FutureTask.run(FutureTask.java:262)
      INFO [stdout] (Periodic Recovery) ret:false for msg: at java.util.concurrent.FutureTask.run(FutureTask.java:262)
      ERROR [stderr] (Periodic Recovery) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
      INFO [stdout] (Periodic Recovery) ret:false for msg: at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
      ERROR [stderr] (Periodic Recovery) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
      INFO [stdout] (Periodic Recovery) ret:false for msg: at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
      ERROR [stderr] (Periodic Recovery) at java.lang.Thread.run(Thread.java:744)
      INFO [stdout] (Periodic Recovery) ret:false for msg: at java.lang.Thread.run(Thread.java:744)
      ERROR [stderr] (Periodic Recovery) at org.jboss.threads.JBossThread.run(JBossThread.java:122)
      INFO [stdout] (Periodic Recovery) ret:false for msg: at org.jboss.threads.JBossThread.run(JBossThread.java:122)
      ERROR [stderr] (Periodic Recovery) at ...asynchronous invocation...(Unknown Source)
      INFO [stdout] (Periodic Recovery) ret:false for msg: at ...asynchronous invocation...(Unknown Source)
      ERROR [stderr] (Periodic Recovery) at org.jboss.ejb.client.remoting.InvocationExceptionResponseHandler$MethodInvocationExceptionResultProducer.getResult(InvocationExceptionResponseHandler.java:99)
      INFO [stdout] (Periodic Recovery) ret:false for msg: at org.jboss.ejb.client.remoting.InvocationExceptionResponseHandler$MethodInvocationExceptionResultProducer.getResult(InvocationExceptionResponseHandler.java:99)
      ERROR [stderr] (Periodic Recovery) at org.jboss.ejb.client.remoting.RemotingConnectionEJBReceiver.sendRollback(RemotingConnectionEJBReceiver.java:360)
      INFO [stdout] (Periodic Recovery) ret:false for msg: at org.jboss.ejb.client.remoting.RemotingConnectionEJBReceiver.sendRollback(RemotingConnectionEJBReceiver.java:360)
      ERROR [stderr] (Periodic Recovery) at org.jboss.ejb.client.RecoveryOnlyEJBXAResource.rollback(RecoveryOnlyEJBXAResource.java:103)
      INFO [stdout] (Periodic Recovery) ret:false for msg: at org.jboss.ejb.client.RecoveryOnlyEJBXAResource.rollback(RecoveryOnlyEJBXAResource.java:103)
      ERROR [stderr] (Periodic Recovery) at com.arjuna.ats.internal.jta.recovery.arjunacore.XARecoveryModule.handleOrphan(XARecoveryModule.java:741)
      INFO [stdout] (Periodic Recovery) ret:false for msg: at com.arjuna.ats.internal.jta.recovery.arjunacore.XARecoveryModule.handleOrphan(XARecoveryModule.java:741)
      ERROR [stderr] (Periodic Recovery) at com.arjuna.ats.internal.jta.recovery.arjunacore.XARecoveryModule.xaRecoverySecondPass(XARecoveryModule.java:647)
      INFO [stdout] (Periodic Recovery) ret:false for msg: at com.arjuna.ats.internal.jta.recovery.arjunacore.XARecoveryModule.xaRecoverySecondPass(XARecoveryModule.java:647)
      ERROR [stderr] (Periodic Recovery) at com.arjuna.ats.internal.jta.recovery.arjunacore.XARecoveryModule.bottomUpRecovery(XARecoveryModule.java:419)
      INFO [stdout] (Periodic Recovery) ret:false for msg: at com.arjuna.ats.internal.jta.recovery.arjunacore.XARecoveryModule.bottomUpRecovery(XARecoveryModule.java:419)
      ERROR [stderr] (Periodic Recovery) at com.arjuna.ats.internal.jta.recovery.arjunacore.XARecoveryModule.periodicWorkSecondPass(XARecoveryModule.java:194)
      INFO [stdout] (Periodic Recovery) ret:false for msg: at com.arjuna.ats.internal.jta.recovery.arjunacore.XARecoveryModule.periodicWorkSecondPass(XARecoveryModule.java:194)
      ERROR [stderr] (Periodic Recovery) at com.arjuna.ats.internal.arjuna.recovery.PeriodicRecovery.doWorkInternal(PeriodicRecovery.java:789)
      INFO [stdout] (Periodic Recovery) ret:false for msg: at com.arjuna.ats.internal.arjuna.recovery.PeriodicRecovery.doWorkInternal(PeriodicRecovery.java:789)
      ERROR [stderr] (Periodic Recovery) at com.arjuna.ats.internal.arjuna.recovery.PeriodicRecovery.run(PeriodicRecovery.java:371)
      INFO [stdout] (Periodic Recovery) ret:false for msg: at com.arjuna.ats.internal.arjuna.recovery.PeriodicRecovery.run(PeriodicRecovery.java:371)
      WARN [com.arjuna.ats.jta] (Periodic Recovery) ARJUNA016006: Local XARecoveryModule.xaRecovery - forget threw exception: javax.transaction.xa.XAException
      at com.arjuna.ats.internal.jta.transaction.arjunacore.jca.TransactionImporterImple.getImportedTransaction(TransactionImporterImple.java:178) [jbossjts-jacorb-4.17.4.Final-redhat-2.jar:4.17.4.Final-redhat-2]
      at org.jboss.as.ejb3.remote.EJBRemoteTransactionsRepository.getImportedTransaction(EJBRemoteTransactionsRepository.java:150)
      at org.jboss.as.ejb3.remote.protocol.versionone.XidTransactionForgetTask.manageTransaction(XidTransactionForgetTask.java:50)
      at org.jboss.as.ejb3.remote.protocol.versionone.XidTransactionManagementTask.run(XidTransactionManagementTask.java:68)
      at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) [rt.jar:1.7.0_45]
      at java.util.concurrent.FutureTask.run(FutureTask.java:262) [rt.jar:1.7.0_45]
      at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) [rt.jar:1.7.0_45]
      at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) [rt.jar:1.7.0_45]
      at java.lang.Thread.run(Thread.java:744) [rt.jar:1.7.0_45]
      at org.jboss.threads.JBossThread.run(JBossThread.java:122)
      at ...asynchronous invocation...(Unknown Source)
      at org.jboss.ejb.client.remoting.InvocationExceptionResponseHandler$MethodInvocationExceptionResultProducer.getResult(InvocationExceptionResponseHandler.java:99)
      at org.jboss.ejb.client.remoting.RemotingConnectionEJBReceiver.sendForget(RemotingConnectionEJBReceiver.java:430)
      at org.jboss.ejb.client.RecoveryOnlyEJBXAResource.forget(RecoveryOnlyEJBXAResource.java:68)
      at com.arjuna.ats.internal.jta.recovery.arjunacore.XARecoveryModule.xaRecoverySecondPass(XARecoveryModule.java:675) [jbossjts-jacorb-4.17.4.Final-redhat-2.jar:4.17.4.Final-redhat-2]
      at com.arjuna.ats.internal.jta.recovery.arjunacore.XARecoveryModule.bottomUpRecovery(XARecoveryModule.java:419) [jbossjts-jacorb-4.17.4.Final-redhat-2.jar:4.17.4.Final-redhat-2]
      at com.arjuna.ats.internal.jta.recovery.arjunacore.XARecoveryModule.periodicWorkSecondPass(XARecoveryModule.java:194) [jbossjts-jacorb-4.17.4.Final-redhat-2.jar:4.17.4.Final-redhat-2]
      at com.arjuna.ats.internal.arjuna.recovery.PeriodicRecovery.doWorkInternal(PeriodicRecovery.java:789) [jbossjts-jacorb-4.17.4.Final-redhat-2.jar:4.17.4.Final-redhat-2]
      at com.arjuna.ats.internal.arjuna.recovery.PeriodicRecovery.run(PeriodicRecovery.java:371) [jbossjts-jacorb-4.17.4.Final-redhat-2.jar:4.17.4.Final-redhat-2]

      Attachments

        Activity

          People

            Unassigned Unassigned
            rhn-support-jolee Johnathon Lee
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: