[JBoss JIRA] Created: (JBTM-377) XAResourceRecord save/restore state insufficiently paranoid
by Jonathan Halliday (JIRA)
XAResourceRecord save/restore state insufficiently paranoid
-----------------------------------------------------------
Key: JBTM-377
URL: http://jira.jboss.com/jira/browse/JBTM-377
Project: JBoss Transaction Manager
Issue Type: Bug
Security Level: Public (Everyone can see)
Affects Versions: 4.3.0.GA
Reporter: Jonathan Halliday
Fix For: 4.4.CR2
The XAResourceRecord save state method writes meta-data into the objectstore before attempting to Serialize and write the actual bytes for an XAResource that it believes, on the basis of it implementing the market interface, is Serializable. If the serialization fails at runtime, the objectstore record is left in an invalid state and can cause the recovery pass to blow up in horrible ways.
We should obtain the byte[] representing the serialized resource before writing anything to the record so that this does not occur. If serialization fails, the record will therefore be useless but at least not otherwise broken.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://jira.jboss.com/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
14 years, 10 months
[JBoss JIRA] Created: (JBTM-229) Configurable exception throwing for multi-threaded environment
by Mark Little (JIRA)
Configurable exception throwing for multi-threaded environment
--------------------------------------------------------------
Key: JBTM-229
URL: http://jira.jboss.com/jira/browse/JBTM-229
Project: JBoss Transaction Manager
Issue Type: Feature Request
Security Level: Public (Everyone can see)
Components: JTA Implementation, JTS Implementation
Reporter: Mark Little
Assigned To: Mark Little
Priority: Optional
Currently if a thread A terminates a transaction in the same way as a thread B subsequently tries to, B will get an exception. This is to allow B to differentiate between it successfully terminating the transaction and someone else doing so. This comes from the OTS heritage. Maybe we should make it configurable, so deployments that couldn't care, can turn off that capability.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://jira.jboss.com/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
14 years, 11 months
[JBoss JIRA] Created: (JBTM-234) setRollbackOnly consistency
by Mark Little (JIRA)
setRollbackOnly consistency
---------------------------
Key: JBTM-234
URL: http://jira.jboss.com/jira/browse/JBTM-234
Project: JBoss Transaction Manager
Issue Type: Task
Security Level: Public (Everyone can see)
Components: JTA Implementation
Affects Versions: 4.2.3.SP4
Reporter: Mark Little
Assigned To: Mark Little
Priority: Optional
OTS does not let you call rollback-only if the state of the transaction is not active. JTA doesn't make it clear whether or not that is an error. That makes it implementation dependent. At the moment both of our JTA implementations mask this issue. AS appears to not expect an exception from setRollbackOnly either, but that's may cause an issue if someone uses a different JTA.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://jira.jboss.com/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
15 years
[JBoss JIRA] Created: (JBTM-226) Possible race condition between top-down and bottom-up recovery
by Mark Little (JIRA)
Possible race condition between top-down and bottom-up recovery
---------------------------------------------------------------
Key: JBTM-226
URL: http://jira.jboss.com/jira/browse/JBTM-226
Project: JBoss Transaction Manager
Issue Type: Bug
Security Level: Public (Everyone can see)
Components: JTA Implementation
Affects Versions: 4.2.3.SP4
Environment: Mac OS X, JDK 1.4.2.
Reporter: Mark Little
Assigned To: Mark Little
Priority: Critical
In local JTA recovery for non-serializable XAResources, the XAResourceRecovery implementation is needed to obtain a new XAResource. If a new resource isn't obtained (because the XAResourceRecovery instances haven't all been triggered yet), top-down recovery retries on subsequent recovery sweeps. Meanwhile, bottom up recovery can kick in and use an XAResource from a XAResourceRecovery that is now available and fail to locate any information on the transaction that will drive it top-down. Upon failing to find the transaction, it uses presumed abort and rolls back the instance, when in fact it should wait and commit it. But it doesn't do that until several phases have passed, and in which case most of the time top-down recovery will have re-run, found the XAResource and committed the transaction.
I'm fairly sure this is a race condition and does exist, but am still checking. Work around exists at the moment though.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://jira.jboss.com/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
15 years, 3 months