-
Bug
-
Resolution: Done
-
Blocker
-
7.1.0.DR6
-
None
-
Regression
-
-
-
-
-
-
-
I can observe inconsistent behaviour of CMR resource against behavior of EAP 7.1.0.DR5 (Narayana 5.3.3.Final). The errors seem to come from implementation of method CommitMarkableResourceRecord#forgetHeuristic.
I have two tests which fails under crash recovery testsuite and causes regression against behaviour of 7.0.0.GA (if tests are not wrong in some way).
1)
- JPAInjectedFailureCMRTestCase#injectFailOnCMRResourceCommit
This scenario injects throwing javax.resource.ResourceException at method javax.resource.spi.LocalTransaction#commit. When BasicAction#doForget is called there is thrown an LocalXAException from LocalXAResourceImpl and that's came to fact that method BasicAction#updateState does not call transactionStore.remove_committed and store is not cleaned.
This is not clear integration test as exception is injected arbitrarily but at my current knowledge I don't find anything wrong with the test.
2)
- JPAProxyCMRCrashRecoveryTestCase#prepareHaltExitRecoveryProxyHalted
The second one is integration test where app server is crashed after 2PC prepare is finished. After restart is expected that both XA resources are rolled-back. When CMR is going to be a NullPointerException is thrown.
2016-10-06 17:50:17,105 WARN [com.arjuna.ats.arjuna] (Periodic Recovery) ARJUNA012290: failed to recover Transaction 0:ffff7f000001:6351fff9:57f67185:2a: java.lang.NullPointerException at com.arjuna.ats.internal.jta.resources.arjunacore.CommitMarkableResourceRecord.forgetHeuristic(CommitMarkableResourceRecord.java:544) at com.arjuna.ats.arjuna.coordinator.BasicAction.doForget(BasicAction.java:3603) at com.arjuna.ats.arjuna.coordinator.BasicAction.forgetHeuristics(BasicAction.java:1347) at com.arjuna.ats.arjuna.coordinator.BasicAction.phase2Abort(BasicAction.java:1991) at com.arjuna.ats.arjuna.coordinator.BasicAction.doCommit(BasicAction.java:2852) at com.arjuna.ats.arjuna.coordinator.BasicAction.phase2Commit(BasicAction.java:1871) 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)
- is blocked by
-
JBTM-2769 CMR resource calls xa_forget on local resources
- Closed
-
JBEAP-7020 Upgrade Narayana to 5.4.0.Final
- Closed
- is related to
-
JBTM-3034 CMR recovery wrongly handles commit and rollback
- Closed
- relates to
-
JBEAP-6455 NPE when trying delete heuristic transaction (with CMR resource) from JDBC tx log-store
- Closed