[
https://jira.jboss.org/jira/browse/JBTM-516?page=com.atlassian.jira.plugi...
]
Andrew Dinn commented on JBTM-516:
----------------------------------
Ok, my comments above missed the obvious which is that the problem lies in the logic. If
the transaction is running and fails to cancel then the worker should call prevent commit.
However, it currently also calls preventCommit in the case where the transaction is not
running and this is inappropriate.
Transaction Reaper reaps atomic JTS transactions that have already
started 2PC
------------------------------------------------------------------------------
Key: JBTM-516
URL:
https://jira.jboss.org/jira/browse/JBTM-516
Project: JBoss Transaction Manager
Issue Type: Bug
Security Level: Public(Everyone can see)
Components: JTS Implementation
Affects Versions: 4.6
Reporter: Michael Musgrove
Assignee: Michael Musgrove
Fix For: 4.7
Start a JTS AtomicTransaction from a remote client with a timeout. During commit if a
ResourceManager takes longer than the timeout period to respond then the TransactionReaper
attempts a rollback even though 2PC has already started. The problem is in
ArjunaTransactionImple::rollback_only (perhaps the determineStatus() check needs to
compare against Status.StatusActive instead of StatusPrepared).
The TM prints out the following warning:
2009-03-26 13:09:31,181 [Thread-8] WARN com.arjuna.ats.arjuna.logging.arjLoggerI18N -
[com.arjuna.ats.arjuna.coordinator.TransactionReaper_18] - TransactionReaper::check
timeout for TX -53ef7d76:dd94:49cb7e7f:3 in state RUN
2009-03-26 13:09:31,181 [Thread-9] WARN com.arjuna.ats.arjuna.logging.arjLoggerI18N -
[com.arjuna.ats.arjuna.coordinator.TransactionReaper_8] -
TransactionReaper::doCancellations worker Thread[Thread-9,10,main] failed to cancel TX
-53ef7d76:dd94:49cb7e7f:3 -- rescheduling for mark-as-rollback
2009-03-26 13:09:31,182 [Thread-9] WARN com.arjuna.ats.jts.logging.loggerI18N -
[com.arjuna.ats.internal.jts.cwcommit] Failed to mark transaction as rollback only:
org.omg.CORBA.INVALID_TRANSACTION: vmcid: 0x4000 minor code: 3617 completed: No
at
com.arjuna.ats.internal.jts.orbspecific.coordinator.ArjunaTransactionImple.rollback_only(ArjunaTransactionImple.java:1159)
at
com.arjuna.ats.internal.jts.ControlWrapper.rollback_only(ControlWrapper.java:334)
at
com.arjuna.ats.internal.jts.ControlWrapper.preventCommit(ControlWrapper.java:172)
at
com.arjuna.ats.arjuna.coordinator.TransactionReaper.doCancellations(TransactionReaper.java:691)
at
com.arjuna.ats.internal.arjuna.coordinator.ReaperWorkerThread.run(ReaperWorkerThread.java:91)
2009-03-26 13:09:31,184 [Thread-9] WARN com.arjuna.ats.arjuna.logging.arjLoggerI18N -
[com.arjuna.ats.arjuna.coordinator.TransactionReaper_15] -
TransactionReaper::doCancellations worker Thread[Thread-9,10,main] failed to mark TX
-53ef7d76:dd94:49cb7e7f:3 as rollback only
--
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