]
William Burns updated ISPN-4167:
--------------------------------
Fix Version/s: 7.2.0.Alpha1
(was: 7.1.0.Final)
DummyBaseTransactionManager doesn't clean up when rollback fails
----------------------------------------------------------------
Key: ISPN-4167
URL:
https://issues.jboss.org/browse/ISPN-4167
Project: Infinispan
Issue Type: Bug
Components: Core
Affects Versions: 6.0.2.Final
Reporter: Dan Berindei
Assignee: Pedro Ruivo
Fix For: 7.2.0.Alpha1
If the rollback fails, the thread local holding the current transaction is not cleared,
and it becomes impossible to start a new transaction on the same thread.
One way this can happen is when Infinispan registers as a XA transaction, but
DummyTransactionManager is not configured to use XA Xids:
{noformat}
12:47:57,169 ERROR (testng-ReplicationExceptionTest:) [DummyTransaction] ISPN000098:
Exception while rollback
java.lang.UnsupportedOperationException
at org.infinispan.transaction.tm.DummyNoXaXid.getBranchQualifier(DummyNoXaXid.java:30)
at
org.infinispan.transaction.xa.recovery.SerializableXid.<init>(SerializableXid.java:37)
at
org.infinispan.transaction.xa.TransactionXaAdapter.convertXid(TransactionXaAdapter.java:251)
at
org.infinispan.transaction.xa.TransactionXaAdapter.rollback(TransactionXaAdapter.java:122)
at
org.infinispan.transaction.tm.DummyTransaction.runRollback(DummyTransaction.java:281)
at org.infinispan.transaction.tm.DummyTransaction.rollback(DummyTransaction.java:88)
at
org.infinispan.transaction.tm.DummyBaseTransactionManager.rollback(DummyBaseTransactionManager.java:104)
at org.infinispan.CacheImpl.tryRollback(CacheImpl.java:1442)
at org.infinispan.CacheImpl.executeCommandAndCommitIfNeeded(CacheImpl.java:1418)
at org.infinispan.CacheImpl.putInternal(CacheImpl.java:894)
at org.infinispan.CacheImpl.put(CacheImpl.java:886)
at org.infinispan.CacheImpl.put(CacheImpl.java:1461)
at org.infinispan.CacheImpl.put(CacheImpl.java:225)
at
org.infinispan.tx.synchronisation.ReplicationExceptionTest.testSyncReplTimeout(ReplicationExceptionTest.java:54)
{noformat}