[JBoss JIRA] Created: (JBTM-752) JBoss TM can not recover the failed XA resource if two XA resource join the transaction but only one XA resource fail to commit
by yong deng (JIRA)
JBoss TM can not recover the failed XA resource if two XA resource join the transaction but only one XA resource fail to commit
-------------------------------------------------------------------------------------------------------------------------------
Key: JBTM-752
URL: https://jira.jboss.org/browse/JBTM-752
Project: JBoss Transaction Manager
Issue Type: Bug
Security Level: Public (Everyone can see)
Components: Recovery
Affects Versions: 4.2.3.CP07, 4.2.3.SP8
Environment: JBOSS TS 4.2.3-SP8 + JBOSS AS 4.2.2 community
Reporter: yong deng
Priority: Blocker
I have a J2EE application. It starts a transacition and involve two XA resource. One is JBoss messaging while the other is Oracle database.
I set a debug breakpoint in the XAResource.commit API of the two XA resources.
During the transaction commit phase, I only let one XA resource commit and before the other XA resource commit, I kill the JBOSS application server.
After JBoss restart, I can see following warning log continually poll out. Transaction manager has two transaction branches record in the state but only one transaction branch fails to commit. The failed branch can never get to be recovered any more.
I think this should be a regression, as the same case can work for JBoss TS 4.2.3 - SP6.
2010-06-11 19:49:48,869 WARN [com.arjuna.ats.jta.logging.loggerI18N] [com.arjuna.ats.internal.jta.resources.arjunacore.norecoveryxa] [com.arjuna.ats.internal.jta.resources.arjunacore.norecoveryxa] Could not find new XAResource to use for recovering non-serializable XAResource < 131075, 26, 24, 1-a6f0342:f9d:4c11f185:17ca6f0342:f9d:4c11f185:17f >
2010-06-11 19:49:48,869 WARN [com.arjuna.ats.arjuna.logging.arjLoggerI18N] [com.arjuna.ats.internal.arjuna.gandiva.inventory.StaticInventory_1] - cannot find null implementation.
2010-06-11 19:49:48,869 WARN [com.arjuna.ats.arjuna.logging.arjLoggerI18N] [com.arjuna.ats.arjuna.coordinator.BasicAction_21] - BasicAction.restore_state - could not recover 175047490
2010-06-11 19:49:48,869 WARN [com.arjuna.ats.arjuna.logging.arjLoggerI18N] [com.arjuna.ats.arjuna.recovery.RecoverAtomicAction_4] - RecoverAtomicAction: transaction not activated, unable to replay phase 2 commit
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://jira.jboss.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
14 years, 5 months
[JBoss JIRA] Created: (JBTM-742) AtomicAction and ThreadActionData cleanup is broken
by Andrew Dinn (JIRA)
AtomicAction and ThreadActionData cleanup is broken
---------------------------------------------------
Key: JBTM-742
URL: https://jira.jboss.org/browse/JBTM-742
Project: JBoss Transaction Manager
Issue Type: Bug
Security Level: Public (Everyone can see)
Affects Versions: 4.6.1.CP05, 4.11.0
Reporter: Andrew Dinn
Assignee: Mark Little
Fix For: 4.12.0, 4.6.1.CP06
ThreadActionData emlpoys a ThreadLocal to maintain the association between threads and actions. This means that the association can only be removed by the associated thread. The finalize method on AtomicAction attempts, amongst other things, to ensure this association is broken by calling ThreadActionData.purgeAction(). Unfortunately it passes the current thread (the Finalizer thread) which means that the association is still retained. This also fails to remove any child thread from the basic action's child thread list for the same reason. Because it has no way of establishing the prior association this finalize method is an expensive waste of time. It would be best deleted.
Also, another detail of this cleanup is wrong. AtomicAction.removeThread(t) currently calls ThreadActionData.purgeAction(this). It should call ThreadActionData.purgeAction(this, t). This change would allow a cleanup thread which knows about the association to remove the correct child thread from the basic action's child thread list. However, it will oto get round the problem that ThreadActionData is using a ThreadLocal. Again, since there is no way of knowing the prior association this method is probably redundant.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://jira.jboss.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
14 years, 6 months
[JBoss JIRA] Created: (JBTM-745) NPE in BridgeWrapper.recover
by Jonathan Halliday (JIRA)
NPE in BridgeWrapper.recover
----------------------------
Key: JBTM-745
URL: https://jira.jboss.org/browse/JBTM-745
Project: JBoss Transaction Manager
Issue Type: Bug
Security Level: Public (Everyone can see)
Components: Recovery, XTS
Affects Versions: 4.6.1.CP05, 4.11.0
Reporter: Jonathan Halliday
Assignee: Jonathan Halliday
Fix For: 4.12.0, 4.6.1.CP06
Where a BridgeWrapper represents a subordinate XTS tx driven by a parent of a type e.g. JTA whose recovery module may run before XTS is initialized, there is the possibility that recovery will be driven whilst no XTS recovery manager is yet available. In such cases recover should return null rather than throwing NPE.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://jira.jboss.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
14 years, 6 months