[
https://issues.jboss.org/browse/ISPN-845?page=com.atlassian.jira.plugin.s...
]
Galder Zamarreño commented on ISPN-845:
---------------------------------------
The fix does not work with JBoss TS. I throws the following (see attached log for TRACE on
org.infinispan.transaction and com.arjuna):
[2011-11-13 08:11:30.489, 1896]WARN [main](arjunaI18NLoggerImpl.java:523) - ARJUNA-12130
Name of XA node not defined. Using Arjuna:8317
[2011-11-13 08:11:30.727, 2134]WARN [main](jtaI18NLoggerImpl.java:177) - ARJUNA-16041
prepare on < formatId=131076, gtrid_length=39, bqual_length=28,
tx_uid=0:ffffc0a80170:207d:4d2f2432:d, node_name=Arjuna:8317,
branch_uid=0:ffffc0a80170:207d:4d2f2432:10, eis_name=unknown eis name >
(TransactionXaAdapter{localTransaction=org.infinispan.transaction.xa.LocalTransaction@178af9c0})
failed with exception XAException.XAER_NOTA
javax.transaction.xa.XAException
at
org.infinispan.transaction.xa.TransactionXaAdapter.getLocalTransactionAndValidate(TransactionXaAdapter.java:148)
at
org.infinispan.transaction.xa.TransactionXaAdapter.prepare(TransactionXaAdapter.java:62)
at
com.arjuna.ats.internal.jta.resources.arjunacore.XAResourceRecord.topLevelPrepare(XAResourceRecord.java:204)
at com.arjuna.ats.arjuna.coordinator.BasicAction.doPrepare(BasicAction.java:2567)
at com.arjuna.ats.arjuna.coordinator.BasicAction.doPrepare(BasicAction.java:2524)
at com.arjuna.ats.arjuna.coordinator.BasicAction.prepare(BasicAction.java:2065)
at com.arjuna.ats.arjuna.coordinator.BasicAction.End(BasicAction.java:1458)
at com.arjuna.ats.arjuna.coordinator.TwoPhaseCoordinator.end(TwoPhaseCoordinator.java:99)
at com.arjuna.ats.arjuna.AtomicAction.commit(AtomicAction.java:159)
at
com.arjuna.ats.internal.jta.transaction.arjunacore.TransactionImple.commitAndDisassociate(TransactionImple.java:1158)
at
com.arjuna.ats.internal.jta.transaction.arjunacore.BaseTransaction.commit(BaseTransaction.java:119)
at
org.springframework.transaction.jta.JtaTransactionManager.doCommit(JtaTransactionManager.java:1009)
at
org.springframework.transaction.support.AbstractPlatformTransactionManager.processCommit(AbstractPlatformTransactionManager.java:754)
at
org.springframework.transaction.support.AbstractPlatformTransactionManager.commit(AbstractPlatformTransactionManager.java:723)
at
org.springframework.transaction.interceptor.TransactionAspectSupport.commitTransactionAfterReturning(TransactionAspectSupport.java:393)
at
org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:120)
at
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
at
org.springframework.aop.framework.Cglib2AopProxy$DynamicAdvisedInterceptor.intercept(Cglib2AopProxy.java:621)
at org.foobar.BoxDAO$$EnhancerByCGLIB$$13c53863.merge(<generated>)
at org.foobar.FillContainerTest.testMufinsAllInOneBox(FillContainerTest.java:65)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41)
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20)
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28)
at
org.springframework.test.context.junit4.statements.RunBeforeTestMethodCallbacks.evaluate(RunBeforeTestMethodCallbacks.java:74)
at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31)
at
org.springframework.test.context.junit4.statements.RunAfterTestMethodCallbacks.evaluate(RunAfterTestMethodCallbacks.java:82)
at
org.springframework.test.context.junit4.statements.SpringRepeat.evaluate(SpringRepeat.java:72)
at
org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:240)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:46)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:180)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:41)
at org.junit.runners.ParentRunner$1.evaluate(ParentRunner.java:173)
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28)
at
org.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks.evaluate(RunBeforeTestClassCallbacks.java:61)
at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31)
at
org.springframework.test.context.junit4.statements.RunAfterTestClassCallbacks.evaluate(RunAfterTestClassCallbacks.java:70)
at org.junit.runners.ParentRunner.run(ParentRunner.java:220)
at
org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run(SpringJUnit4ClassRunner.java:180)
at
org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:49)
at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
at
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)
at
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)
Memory leaks for 2 phase commit readonly transaction
----------------------------------------------------
Key: ISPN-845
URL:
https://issues.jboss.org/browse/ISPN-845
Project: Infinispan
Issue Type: Bug
Components: Transactions
Affects Versions: 4.2.0.Final
Reporter: Changgeng Li
Assignee: Manik Surtani
Priority: Blocker
Fix For: 4.2.1.Final
Attachments: infinispan.log
If a method that is declared with read only transactional attribute by
'@Transactional(readOnly=true)', using jboss transaction manager, and inside this
method two caches are visited, there will be memory leak after the method is invoked.
The leak happens in TransactionTable instances, localTransactions map and xid2LocalTx
map. It seems the commit phrase is skipped and the cleanup method is failed to be called
to clean entries in these two maps.
My test shows if the transaction just enlists one cache, there won't be any problems,
but I haven't test whether using DummyTransactionManagerLookup will resolve this.
This bug break our system where readOnly DAO methods are heavily used with infinispan as
hibernate second level cache.
--
This message is automatically generated by JIRA.
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira