[
https://issues.jboss.org/browse/ISPN-5948?page=com.atlassian.jira.plugin....
]
William Burns commented on ISPN-5948:
-------------------------------------
The root cause of this is actually that the NotificationInterceptor notifies of the
transaction being completed after the lock has already been released. This allows another
concurrent transaction which has locks on the same key to possible interleave their
notifications. The simplest fix is to move the NotificationInterceptor to be below the
locking interceptor. In this case all locks will still be held while the notifcations are
sent guaranteeing proper ordering. However this is also a slight change behavior,
although I could argue this was probably expected. I am also investigating if there is a
nicer solution, but the simple one is always available.
ClusterListenerDistTxTest.testSimpleExpirationFilterNotOwner and
ClusterListenerDistTxTest.testSimpleExpirationConverterNotOwner fail with assertion error
----------------------------------------------------------------------------------------------------------------------------------------------------------
Key: ISPN-5948
URL:
https://issues.jboss.org/browse/ISPN-5948
Project: Infinispan
Issue Type: Bug
Components: Test Suite - Core
Reporter: Roman Macor
Assignee: William Burns
Labels: testsuite_stability
Attachments: ClusterListenerDistTxTest.log.gz
ClusterListenerDistTxTest.testSimpleExpirationFilterNotOwner fails with:
Error Message
expected:<MagicKey#null{2ea2ae14@ClusterListenerDistTxTest-NodeDE-7642/40}-expiring>
but was:<null>
Stacktrace
java.lang.AssertionError:
expected:<MagicKey#null{2ea2ae14@ClusterListenerDistTxTest-NodeDE-7642/40}-expiring>
but was:<null>
at org.testng.AssertJUnit.fail(AssertJUnit.java:59)
at org.testng.AssertJUnit.failNotEquals(AssertJUnit.java:364)
at org.testng.AssertJUnit.assertEquals(AssertJUnit.java:80)
at org.testng.AssertJUnit.assertEquals(AssertJUnit.java:88)
at
org.infinispan.notifications.cachelistener.cluster.AbstractClusterListenerUtilTest.verifySimpleExpirationEvents(AbstractClusterListenerUtilTest.java:292)
at
org.infinispan.notifications.cachelistener.cluster.AbstractClusterListenerTest.testExpirationFilter(AbstractClusterListenerTest.java:735)
at
org.infinispan.notifications.cachelistener.cluster.AbstractClusterListenerTest.testSimpleExpirationFilter(AbstractClusterListenerTest.java:705)
at
org.infinispan.notifications.cachelistener.cluster.AbstractClusterListenerTest.testSimpleExpirationFilterNotOwner(AbstractClusterListenerTest.java:692)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:95)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:56)
at java.lang.reflect.Method.invoke(Method.java:620)
at
org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:80)
at org.testng.internal.Invoker.invokeMethod(Invoker.java:714)
at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:901)
at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:1231)
at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:127)
at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:111)
at org.testng.TestRunner.privateRun(TestRunner.java:767)
at org.testng.TestRunner.run(TestRunner.java:617)
at org.testng.SuiteRunner.runTest(SuiteRunner.java:334)
at org.testng.SuiteRunner.access$000(SuiteRunner.java:37)
at org.testng.SuiteRunner$SuiteWorker.run(SuiteRunner.java:368)
at org.testng.internal.thread.ThreadUtil$2.call(ThreadUtil.java:64)
at java.util.concurrent.FutureTask.run(FutureTask.java:274)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1157)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:627)
at java.lang.Thread.run(Thread.java:809)
ClusterListenerDistTxTest.testSimpleExpirationConverterNotOwner fails with:
Error Message
expected:<fi> but was:<null>
Stacktrace
java.lang.AssertionError: expected:<fi> but was:<null>
at org.testng.AssertJUnit.fail(AssertJUnit.java:59)
at org.testng.AssertJUnit.failNotEquals(AssertJUnit.java:364)
at org.testng.AssertJUnit.assertEquals(AssertJUnit.java:80)
at org.testng.AssertJUnit.assertEquals(AssertJUnit.java:88)
at
org.infinispan.notifications.cachelistener.cluster.AbstractClusterListenerUtilTest.verifySimpleExpirationEvents(AbstractClusterListenerUtilTest.java:292)
at
org.infinispan.notifications.cachelistener.cluster.AbstractClusterListenerTest.testExpirationConverter(AbstractClusterListenerTest.java:767)
at
org.infinispan.notifications.cachelistener.cluster.AbstractClusterListenerTest.testSimpleExpirationConverterNotOwner(AbstractClusterListenerTest.java:742)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:95)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:56)
at java.lang.reflect.Method.invoke(Method.java:620)
at
org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:80)
at org.testng.internal.Invoker.invokeMethod(Invoker.java:714)
at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:901)
at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:1231)
at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:127)
at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:111)
at org.testng.TestRunner.privateRun(TestRunner.java:767)
at org.testng.TestRunner.run(TestRunner.java:617)
at org.testng.SuiteRunner.runTest(SuiteRunner.java:334)
at org.testng.SuiteRunner.access$000(SuiteRunner.java:37)
at org.testng.SuiteRunner$SuiteWorker.run(SuiteRunner.java:368)
at org.testng.internal.thread.ThreadUtil$2.call(ThreadUtil.java:64)
at java.util.concurrent.FutureTask.run(FutureTask.java:274)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1157)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:627)
at java.lang.Thread.run(Thread.java:809)
--
This message was sent by Atlassian JIRA
(v6.4.11#64026)