]
Tom Jenkinson updated JBTM-2770:
--------------------------------
Attachment: (was:
JPAProxyCMRCrashRecoveryTestCase_commitHaltRecoveryProxyHalted_jta_server.log)
Xids that relate to an CMR that has been recovered are rolledback
even if the CMR committed
-------------------------------------------------------------------------------------------
Key: JBTM-2770
URL:
https://issues.jboss.org/browse/JBTM-2770
Project: JBoss Transaction Manager
Issue Type: Bug
Affects Versions: 5.3.5.Final
Reporter: Ondra Chaloupka
Assignee: Tom Jenkinson
Priority: Blocker
I found another regression (besides JBEAP-6326) for behavior of CMR datasource which came
with DR6 (Narayana 5.3.5.Final) and is regression against DR5 (5.3.3.Final)
The scenario which I run is following
{quote}
* enlist test xa resource
* enlist cmr db resource
* prepare cmr db resource
* prepare test xa resource
* commit cmr db resource
* crash app server
* start server and halt connection to DB
* do recovery of test xa resource which is expected being committed
{quote}
What happens is that the second resource (test XA resource) is not committed but is
rolled-back. By my investigation I think that the regression came from changes under
{{com.arjuna.ats.internal.jta.recovery.arjunacore#getNewXAResource(Xid xid)}} (but
it's only observation and it could be wrong interpretation).
In log the rollback could be seen being caused by {{JTANodeNameXAResourceOrphanFilter}}
which votes for rollback.
{code}
2016-10-06 17:59:19,552 DEBUG [com.arjuna.ats.jta] (Periodic Recovery) node name of <
formatId=131077, gtrid_length=29, bqual_length=36,
tx_uid=0:ffff7f000001:4302bcff:57f67425:2a, node_name=1,
branch_uid=0:ffff7f000001:4302bcff:57f67425:2f, subordinatenodename=null,
eis_name=java:/TestXAResource > is 12016-10-06 17:59:19,552 DEBUG [com.arjuna.ats.jta]
(Periodic Recovery) XAResourceOrphanFilter
com.arjuna.ats.internal.jta.recovery.arjunacore.JTANodeNameXAResourceOrphanFilter voted
ROLLBACK
{code}