[JBoss JIRA] Created: (JBTM-748) Calling rollback_only via OTS is throwing the wrong exception
by Michael Musgrove (JIRA)
Calling rollback_only via OTS is throwing the wrong exception
-------------------------------------------------------------
Key: JBTM-748
URL: https://jira.jboss.org/browse/JBTM-748
Project: JBoss Transaction Manager
Issue Type: Bug
Security Level: Public (Everyone can see)
Components: JTS
Affects Versions: 4.11.0
Reporter: Michael Musgrove
Assignee: Andrew Dinn
Fix For: 4.12.0
Occasionally our BlackTie CI test run is failing when marking a transaction rollback only because it is getting the wrong exception back from the transaction manager
16:11:10,296 WARN [arjLoggerI18N] [com.arjuna.ats.arjuna.coordinator.TransactionReaper_18] - TransactionReaper::check timeout for TX -53ee7cfb:10e2:4c0fa834:22ec in state RUN
[exec] 2010-06-09 16:11:10,296 [0x0000123c] WARN (TxLogControl :153 ) - rollback_only: INVALID_TRANSACTION minor: 20001
16:11:10,328 WARN [arjLoggerI18N] [com.arjuna.ats.arjuna.coordinator.TransactionReaper_7] - TransactionReaper::doCancellations worker Thread[Thread-18,5,jboss] successfully canceled TX -53ee7cfb:10e2:4c0fa834:22ec
The second log message comes from the C client (the other two from the reaper). The CORBA System exception major/minor code represents INVALID_TRANSACTION/INACTIVE_TRANSACTION which according to the OTS spec is incorrect.
A look at the code shows a race condition between a BlackTie C client marking a transaction abort only and the Transaction Reaper cancelling it (due to a timeout being reached). The reaper eventually winds up in ControlImple.destroy() where the CORBA object representing the transaction is destroyed. There is a window where the C client request reaches JacORB just before the reaper has had a chance to destroy the CORBA object resulting in the wrong exception being returned.
--
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
13 years, 8 months
[JBoss JIRA] Created: (JBTM-619) Cannot enlist two Oracle XAConnection resources in one transaction
by Wade Poziombka (JIRA)
Cannot enlist two Oracle XAConnection resources in one transaction
------------------------------------------------------------------
Key: JBTM-619
URL: https://jira.jboss.org/jira/browse/JBTM-619
Project: JBoss Transaction Manager
Issue Type: Bug
Security Level: Public (Everyone can see)
Components: JTA
Affects Versions: 4.7.0
Environment: Windows and Linux.
Reporter: Wade Poziombka
An attempt to enlist two Oracle connections causes the second enlistResource to fail with an exception similar to:
oracle.jdbc.xa.OracleXAException
at oracle.jdbc.xa.OracleXAResource.checkError(OracleXAResource.java:938)
at oracle.jdbc.xa.client.OracleXAResource.start(OracleXAResource.java:244)
at com.arjuna.ats.internal.jta.transaction.arjunacore.TransactionImple.enlistResource(TransactionImple.java:902)
at com.arjuna.ats.internal.jta.transaction.arjunacore.TransactionImple.enlistResource(TransactionImple.java:513)
Note the line number changes a bit depending on version of Oracle JDBC etc. However, the affect is always the same.
There are others who noted this problem on the forum with no resolution or reply (except my own concurring with the observation).
In particular two connections to same server using different user id's and passwords. I will test whether two completely separate oracle instances have this issue and update the bug.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://jira.jboss.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
13 years, 9 months
[JBoss JIRA] Created: (JBTM-443) check LastResource logging and recovery
by Jonathan Halliday (JIRA)
check LastResource logging and recovery
---------------------------------------
Key: JBTM-443
URL: https://jira.jboss.org/jira/browse/JBTM-443
Project: JBoss Transaction Manager
Issue Type: Bug
Security Level: Public (Everyone can see)
Components: JTA Implementation, JTS Implementation, Recovery
Affects Versions: 4.4.0.GA
Reporter: Jonathan Halliday
Assignee: Jonathan Halliday
Fix For: 4.6
Where transactions contain LastResource, they may not be fully recoverable. Check if LastResource records are written to the log and if so, what happens to them during recovery.
Optimise the case where a tx contains multiple last resources, as we need to write a log for such a tx only if it also contains real resources. The case where the tx only has a single resource enlisted is irrelevant as the onePhaseCommit optimization already skips logging.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://jira.jboss.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
13 years, 9 months
[JBoss JIRA] Created: (JBTM-826) emma transformed code is illegal and causes the JVM to throw spurious errors when code is retransformed by an agent
by Andrew Dinn (JIRA)
emma transformed code is illegal and causes the JVM to throw spurious errors when code is retransformed by an agent
-------------------------------------------------------------------------------------------------------------------
Key: JBTM-826
URL: https://issues.jboss.org/browse/JBTM-826
Project: JBoss Transaction Manager
Issue Type: Bug
Security Level: Public (Everyone can see)
Components: Build System
Affects Versions: 4.14.0
Reporter: Andrew Dinn
Assignee: Andrew Dinn
Fix For: 4.15.0
When emma is used to add coverage collection code to the TS build classes it occasionally has to generate a new <clinit> class for an instrumented class. emma helpfully tags the method with the SYNTHETIC attribute, assuming that this means the method should be ignored by bytecode transformers and other code analysis tools. In fact this attribute is used internally by the Javac comple and JVM for its own purposes and should not be used as a marker by bytecode manipulation tools (see the relevant thread on the Javac mailing list for a definitive resolution of this point).
As a consequence of this mistake the JVM can fail during retransformation of a class file with a spurious error even if the classbytes are not actually modified by the transformer. This manifests in Byteman when a class containing the SYNTHETIC <clinit> method is transformed to inject rules and then subsequently transformed again when the rules are unloaded. The original transform at rule inject time works fine because the bytecode loaded from disk and the modified bytecode returned by the Byteman agent both associate the SYNTHETIC attribute with the <clinit> method (Byteman does not change this erroneously attributed property). However, at the second retransform the JVM blows up with a 'modified method attributes' error.
When the JVM passes Byteman the bytecode for retransformation it is returned unchanged because the relevant rules have been unloaded. However, when the JVM checks this it compares it against bytecode derived from the internal class pointer which omits the SYNTHETIC attribute on the <clinit> method.
The fix is to ensure that emmma does not attach the SYNTHETIC attribute to any generated <clinit> method. Strictly it shoud not do so for any method but patchign jst this part of the code will be sufficient.
Since emma is not being actively updated this patch is being applied to the JBossTS internal version of emma whose source is in the JBossTS workspace. An issue needs to be raised against the main emma code base.
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira
13 years, 10 months
[JBoss JIRA] Created: (JBTM-774) TM is not fully OTS spec compliant with respect to XA
by Michael Musgrove (JIRA)
TM is not fully OTS spec compliant with respect to XA
------------------------------------------------------
Key: JBTM-774
URL: https://jira.jboss.org/browse/JBTM-774
Project: JBoss Transaction Manager
Issue Type: Bug
Security Level: Public (Everyone can see)
Components: JTS
Affects Versions: 4.6.1.CP07, 4.12.0
Reporter: Michael Musgrove
Assignee: Mark Little
Fix For: 4.13.0, 4.6.1.CP08
According to the OTS specification the Propagation Context should always be available. Annex B2.2 says:
"The Transaction Service does not restrict the availability of the PropagationContext: the operation get_txcontext on the Coordinator never raises Unavailable."
However the TM is raising this exception if the transaction has been aborted (for example if the reaper has detected that the transaction has timed out). [The method ArjunaTransactionImple.get_txcontext will always raise CosTransactions.Unavailable if the transaction is not active.]
This problem was observed whilst running the BlackTie test suite.
--
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
13 years, 10 months