[
https://issues.jboss.org/browse/WFLY-10053?page=com.atlassian.jira.plugin...
]
Flavia Rainone commented on WFLY-10053:
---------------------------------------
[~ochaloup] Don't you think that the error above is the one that happens before the
second server is restarted? I.e., the error above is just the test scenario, it is the
first attempt to commit, the one that will go wrong because the server drops. What should
happen after the wildfly server is restarted? Should an attempt to recover the node be
sent? Any pointers to the arjuna code of where this happens will be useful, because I
think that this is where I need to investigate it.
[~tomjenkinson] Doesn't it look like something that has been fixed already, but only
on the new versions of the server? I think the problem is related to the older versions of
the code, look at the following snippet:
"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"
To me, it means that when server 1 is WFLY12 or EAP 7.1.0, it is capable to recover the
transaction commit after the second server is restarted, regardless of the version of the
second server. On the other hand, previous server versions, namely 6.4.x and 7.0.x, are
not capable of realizing that the second server is restarted and finding it/recovering the
missing resource. I wonder what is the output if we have something like 7.0.x ->
7.0.x.
I'll try to run this as soon as I get access to the test code (I don't have a
login to gitlab repo).
TM is not forward compatible
-----------------------------
Key: WFLY-10053
URL:
https://issues.jboss.org/browse/WFLY-10053
Project: WildFly
Issue Type: Bug
Components: Transactions
Affects Versions: 12.0.0.Final
Reporter: Ivan Straka
Assignee: Tom Jenkinson
Attachments: EAP7.0.9.log, WF12.log
TM is unable to recover transaction after one of the nodes crash during commit phase of a
resource.
Scenario:
# EAP 7.0.9 enlists dummy XA resource, update db value (XADatasource) and call WildFly
12
# WildFly 12 enlists dummy XA resource, update other db value
# At entry of commit phase of dummy XA resource on WildFly12 byteman crash the server
# WildFly 12 is started
# Recovery process should recover the transaction
Following exception is seen in EAP 7.0.9 log
{code:java}
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)
{code}
Result is that resources on EAP7.0.9 are commited and resources on WF12 are not:
{code:java}
[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
{code}
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.
--
This message was sent by Atlassian JIRA
(v7.5.0#75005)