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

TM is not forward compatible

    XMLWordPrintable

Details

    • Bug
    • Resolution: Won't Do
    • Major
    • None
    • 12.0.0.Final
    • Transactions
    • None
    • Hide
      1. download and unzip WildFly 12
      2. git clone git@gitlab.mw.lab.eng.bos.redhat.com:jbossqe-eap/tests-transactions-propagation.git
      3. mvn test -Dts.eap1.version=7.0.9 -Dts.eap2.dist.path=<path to wildfly 12 folder> -Dts.eap2.version=7.2.0 -Dts.tx.impl=JTA -Dts.log.arjuna.all -Dtest=FirstCallSecondTests#jvmCrashEntryCommitSecondServer -DfailIfNoTests=false
      Show
      download and unzip WildFly 12 git clone git@gitlab.mw.lab.eng.bos.redhat.com:jbossqe-eap/tests-transactions-propagation.git mvn test -Dts.eap1.version=7.0.9 -Dts.eap2.dist.path=<path to wildfly 12 folder> -Dts.eap2.version=7.2.0 -Dts.tx.impl=JTA -Dts.log.arjuna.all -Dtest=FirstCallSecondTests#jvmCrashEntryCommitSecondServer -DfailIfNoTests=false

    Description

      TM is unable to recover transaction after one of the nodes crash during commit phase of a resource.

      Scenario:

      1. EAP 7.0.9 enlists dummy XA resource, update db value (XADatasource) and call WildFly 12
      2. WildFly 12 enlists dummy XA resource, update other db value
      3. At entry of commit phase of dummy XA resource on WildFly12 byteman crash the server
      4. WildFly 12 is started
      5. Recovery process should recover the transaction

      Following exception is seen in EAP 7.0.9 log

      2018-03-20 12:42:35,171 WARN  [com.arjuna.ats.jta] (Periodic Recovery) ARJUNA016036: commit on < formatId=131077, gtrid_length=32, bqual_length=36, tx_uid=0:ffff7f000001:643452d5:5ab0f37d:f, node_name=eap1, branch_uid=0:ffff7f000001:643452d5:5ab0f37d:1e, subordinatenodename=null, eis_name=unknown eis name > (RecoveryOnlySerializedEJBXAResource{ejbReceiverNodeName='eap2'}) failed with exception $XAException.XA_RETRY: javax.transaction.xa.XAException
      	at org.jboss.ejb.client.RecoveryOnlySerializedEJBXAResource.commit(RecoveryOnlySerializedEJBXAResource.java:56)
      	at com.arjuna.ats.internal.jta.resources.arjunacore.XAResourceRecord.topLevelCommit(XAResourceRecord.java:477)
      	at com.arjuna.ats.arjuna.coordinator.BasicAction.doCommit(BasicAction.java:2869)
      	at com.arjuna.ats.arjuna.coordinator.BasicAction.doCommit(BasicAction.java:2785)
      	at com.arjuna.ats.arjuna.coordinator.BasicAction.phase2Commit(BasicAction.java:1853)
      	at com.arjuna.ats.arjuna.recovery.RecoverAtomicAction.replayPhase2(RecoverAtomicAction.java:71)
      	at com.arjuna.ats.internal.arjuna.recovery.AtomicActionRecoveryModule.doRecoverTransaction(AtomicActionRecoveryModule.java:152)
      	at com.arjuna.ats.internal.arjuna.recovery.AtomicActionRecoveryModule.processTransactionsStatus(AtomicActionRecoveryModule.java:253)
      	at com.arjuna.ats.internal.arjuna.recovery.AtomicActionRecoveryModule.periodicWorkSecondPass(AtomicActionRecoveryModule.java:109)
      	at com.arjuna.ats.internal.arjuna.recovery.PeriodicRecovery.doWorkInternal(PeriodicRecovery.java:811)
      	at com.arjuna.ats.internal.arjuna.recovery.PeriodicRecovery.run(PeriodicRecovery.java:377)
      

      Result is that resources on EAP7.0.9 are commited and resources on WF12 are not:

      [INFO] there is (are) 1 transaction(s) in tx obj store /home/istraka/manu-units/tests-transactions-propagation/manu-unit-eap-transactions-propagation/out/EAP2_7.2.0/workspace/wildfly-12.0.0.Final/standalone/data/tx-object-store
      [INFO] Transaction
      		Xid:< formatId=131077, gtrid_length=32, bqual_length=40, tx_uid=0:ffff7f000001:-174ad8d9:5ab0fb3b:f, node_name=eap1, branch_uid=0:ffff7f000001:-174ad8d9:5ab0fb3b:1e, subordinatenodename=eap2, eis_name=0 > 
      		Type:StateManager/BasicAction/TwoPhaseCoordinator/AtomicAction/SubordinateAtomicAction/JCA 
      		ParentNodeName:eap1 
      		Participant:false 
      		CreationTime:Tue, 20 Mar 2018 13:15:18 +0100 
      		AgeInSeconds:269 
      		Id:0:ffff7f000001:39e6900e:5ab0fb4a:13 
      		Participant
      			HeuristicValue:-1 
      			Status:PREPARED 
      			JndiName:java:/TestXAResource 
      			GlobalTransactionId:[B@5753c786 
      			HeuristicStatus:UNKNOWN 
      			NodeName:null 
      			Timeout:0 
      			FormatId:-1 
      			BranchQualifier:[B@1874640 
      			Type:/StateManager/AbstractRecord/XAResourceRecord 
      			Participant:true 
      			EisProductVersion:EAP Test 
      			ClassName:com.arjuna.ats.internal.jta.resources.arjunacore.XAResourceRecord 
      			EisProductName:Crash Recovery Test 
      			Id:0:ffff7f000001:39e6900e:5ab0fb4a:1d 
      		Participant
      			HeuristicValue:-1 
      			Status:PREPARED 
      			JndiName:java:jboss/eap2-ds-jndi 
      			GlobalTransactionId:[B@4ae75d2d 
      			HeuristicStatus:UNKNOWN 
      			NodeName:null 
      			Timeout:0 
      			FormatId:-1 
      			BranchQualifier:[B@5eaa38ce 
      			Type:/StateManager/AbstractRecord/XAResourceRecord 
      			Participant:true 
      			EisProductVersion:9.3.15 
      			ClassName:com.arjuna.ats.internal.jta.resources.arjunacore.XAResourceRecord 
      			EisProductName:PostgreSQL 
      			Id:0:ffff7f000001:39e6900e:5ab0fb4a:23 
      
      

      The issue is valid for:

      • 6.4.x -> WF12
      • 7.0.X -> WF12

      The issue is not valid for:

      • WF12 -> 6.4.x
      • WF12-> 7.0.x
      • 7.1.0 -> WF 12

      If you have any question (about testsuite, scenario,...) feel free to ask.

      Attachments

        1. EAP7.0.9.log
          295 kB
        2. WF12.log
          371 kB

        Activity

          People

            thjenkin@redhat.com Tom Jenkinson
            istraka@redhat.com Ivan Straka
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: