[jbossts-issues] [JBoss JIRA] Updated: (JBTM-748) Calling rollback_only via OTS is throwing the wrong exception

Andrew Dinn (JIRA) jira-events at lists.jboss.org
Fri Jul 30 09:24:49 EDT 2010

     [ https://jira.jboss.org/browse/JBTM-748?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Andrew Dinn updated JBTM-748:

    Fix Version/s: 4.13.0
                       (was: 4.12.0)

> 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.13.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


More information about the jbossts-issues mailing list