[JBoss JIRA] (ISPN-5429) Cluster CacheEventFilterConverter wrapping leads to double callbacks
by Galder Zamarreño (JIRA)
[ https://issues.jboss.org/browse/ISPN-5429?page=com.atlassian.jira.plugin.... ]
Galder Zamarreño resolved ISPN-5429.
------------------------------------
Fix Version/s: 7.2.0.Final
Resolution: Done
> Cluster CacheEventFilterConverter wrapping leads to double callbacks
> --------------------------------------------------------------------
>
> Key: ISPN-5429
> URL: https://issues.jboss.org/browse/ISPN-5429
> Project: Infinispan
> Issue Type: Bug
> Components: Listeners
> Affects Versions: 7.2.0.CR1, 7.1.1.Final
> Reporter: Galder Zamarreño
> Assignee: Galder Zamarreño
> Fix For: 7.2.0.Final
>
>
> This was spotted by Pierre Sutra from University of Neuchatel:
> When a CacheEventFilterConverter is registered with remote event listeners, and running in a cluster, once the CacheEventFilterConverter instance is replicated, the notion that its both a filter AND converter is lost because BaseCacheEntryListenerInvocation's constructor determines that {{filterAndConvert}} is false.
> The reason this happens is because after clustering it, the ClusterListenerReplicateCallable.call() wraps the {{filter}} into an {{AbstractCacheEventFilterConverter}} implementation, which does not keep the referential equality that BaseCacheEntryListenerInvocation's constructor checks.
> A simple way to avoid this is to implement {{equals}} in the AbstractCacheEventFilterConverter implementation and use referential equality. Then, switching BaseCacheEntryListenerInvocation's constructors referential equality by a call to {{equals}} is enough to solve the issue.
> The reason this bug was detected is because without a fix for it, the filter + converter gets two callbacks instead of one. I've added tests to verify that the number callbacks expected is the correct one.
--
This message was sent by Atlassian JIRA
(v6.3.15#6346)
9 years, 8 months
[JBoss JIRA] (ISPN-5429) Cluster CacheEventFilterConverter wrapping leads to double callbacks
by Galder Zamarreño (JIRA)
[ https://issues.jboss.org/browse/ISPN-5429?page=com.atlassian.jira.plugin.... ]
Galder Zamarreño reopened ISPN-5429:
------------------------------------
> Cluster CacheEventFilterConverter wrapping leads to double callbacks
> --------------------------------------------------------------------
>
> Key: ISPN-5429
> URL: https://issues.jboss.org/browse/ISPN-5429
> Project: Infinispan
> Issue Type: Bug
> Components: Listeners
> Affects Versions: 7.2.0.CR1, 7.1.1.Final
> Reporter: Galder Zamarreño
> Assignee: Galder Zamarreño
>
> This was spotted by Pierre Sutra from University of Neuchatel:
> When a CacheEventFilterConverter is registered with remote event listeners, and running in a cluster, once the CacheEventFilterConverter instance is replicated, the notion that its both a filter AND converter is lost because BaseCacheEntryListenerInvocation's constructor determines that {{filterAndConvert}} is false.
> The reason this happens is because after clustering it, the ClusterListenerReplicateCallable.call() wraps the {{filter}} into an {{AbstractCacheEventFilterConverter}} implementation, which does not keep the referential equality that BaseCacheEntryListenerInvocation's constructor checks.
> A simple way to avoid this is to implement {{equals}} in the AbstractCacheEventFilterConverter implementation and use referential equality. Then, switching BaseCacheEntryListenerInvocation's constructors referential equality by a call to {{equals}} is enough to solve the issue.
> The reason this bug was detected is because without a fix for it, the filter + converter gets two callbacks instead of one. I've added tests to verify that the number callbacks expected is the correct one.
--
This message was sent by Atlassian JIRA
(v6.3.15#6346)
9 years, 8 months
[JBoss JIRA] (ISPN-5436) Some ClientClusterEventsTest tests fail randomly
by Galder Zamarreño (JIRA)
[ https://issues.jboss.org/browse/ISPN-5436?page=com.atlassian.jira.plugin.... ]
Galder Zamarreño updated ISPN-5436:
-----------------------------------
Fix Version/s: 7.2.1.Final
> Some ClientClusterEventsTest tests fail randomly
> ------------------------------------------------
>
> Key: ISPN-5436
> URL: https://issues.jboss.org/browse/ISPN-5436
> Project: Infinispan
> Issue Type: Bug
> Affects Versions: 7.2.0.Final
> Reporter: Galder Zamarreño
> Assignee: Galder Zamarreño
> Fix For: 7.2.1.Final
>
>
> Some org.infinispan.client.hotrod.event.ClientClusterEventsTest tests seem to fail randomly:
> {code}
> testFilterCustomEventsInCluster(org.infinispan.client.hotrod.event.ClientClusterEventsTest) Time elapsed: 0.119 sec <<< FAILURE!
> java.lang.AssertionError: expected:<CustomEvent{key=2, value='two', timestamp=10917205818735, counter=3}> but was:<CustomEvent{key=2, value='two', timestamp=10917204740046, counter=1}>
> 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.test.TestingUtil.assertAnyEquals(TestingUtil.java:1485)
> at org.infinispan.client.hotrod.event.CustomEventLogListener.expectSingleCustomEvent(CustomEventLogListener.java:64)
> at org.infinispan.client.hotrod.event.CustomEventLogListener.expectCreatedEvent(CustomEventLogListener.java:68)
> at org.infinispan.client.hotrod.event.ClientClusterEventsTest$4.call(ClientClusterEventsTest.java:130)
> at org.infinispan.client.hotrod.test.HotRodClientTestingUtil.withClientListener(HotRodClientTestingUtil.java:158)
> at org.infinispan.client.hotrod.event.ClientClusterEventsTest.testFilterCustomEventsInCluster(ClientClusterEventsTest.java:121)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> at java.lang.reflect.Method.invoke(Method.java:497)
> at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:84)
> 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:348)
> at org.testng.SuiteRunner.access$000(SuiteRunner.java:38)
> at org.testng.SuiteRunner$SuiteWorker.run(SuiteRunner.java:382)
> at org.testng.internal.thread.ThreadUtil$2.call(ThreadUtil.java:64)
> at java.util.concurrent.FutureTask.run(FutureTask.java:266)
> at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
> at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
> at java.lang.Thread.run(Thread.java:745)
> testFilteringInCluster(org.infinispan.client.hotrod.event.ClientClusterEventsTest) Time elapsed: 0.103 sec <<< FAILURE!
> java.lang.AssertionError:
> at org.testng.AssertJUnit.fail(AssertJUnit.java:59)
> at org.testng.AssertJUnit.assertTrue(AssertJUnit.java:24)
> at org.testng.AssertJUnit.assertNotNull(AssertJUnit.java:267)
> at org.testng.AssertJUnit.assertNotNull(AssertJUnit.java:259)
> at org.infinispan.client.hotrod.event.EventLogListener.pollEvent(EventLogListener.java:51)
> at org.infinispan.client.hotrod.event.EventLogListener.expectSingleEvent(EventLogListener.java:125)
> at org.infinispan.client.hotrod.event.EventLogListener.expectOnlyCreatedEvent(EventLogListener.java:105)
> at org.infinispan.client.hotrod.event.ClientClusterEventsTest$2.call(ClientClusterEventsTest.java:91)
> at org.infinispan.client.hotrod.test.HotRodClientTestingUtil.withClientListener(HotRodClientTestingUtil.java:147)
> at org.infinispan.client.hotrod.event.ClientClusterEventsTest.testFilteringInCluster(ClientClusterEventsTest.java:83)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> at java.lang.reflect.Method.invoke(Method.java:497)
> at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:84)
> 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:348)
> at org.testng.SuiteRunner.access$000(SuiteRunner.java:38)
> at org.testng.SuiteRunner$SuiteWorker.run(SuiteRunner.java:382)
> at org.testng.internal.thread.ThreadUtil$2.call(ThreadUtil.java:64)
> at java.util.concurrent.FutureTask.run(FutureTask.java:266)
> at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
> at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
> at java.lang.Thread.run(Thread.java:745)
> {code}
--
This message was sent by Atlassian JIRA
(v6.3.15#6346)
9 years, 8 months
[JBoss JIRA] (ISPN-5436) Some ClientClusterEventsTest tests fail randomly
by Galder Zamarreño (JIRA)
[ https://issues.jboss.org/browse/ISPN-5436?page=com.atlassian.jira.plugin.... ]
Galder Zamarreño updated ISPN-5436:
-----------------------------------
Git Pull Request: https://github.com/infinispan/infinispan/pull/3433, https://github.com/infinispan/infinispan/pull/3439 (was: https://github.com/infinispan/infinispan/pull/3433)
> Some ClientClusterEventsTest tests fail randomly
> ------------------------------------------------
>
> Key: ISPN-5436
> URL: https://issues.jboss.org/browse/ISPN-5436
> Project: Infinispan
> Issue Type: Bug
> Affects Versions: 7.2.0.Final
> Reporter: Galder Zamarreño
> Assignee: Galder Zamarreño
> Fix For: 7.2.1.Final
>
>
> Some org.infinispan.client.hotrod.event.ClientClusterEventsTest tests seem to fail randomly:
> {code}
> testFilterCustomEventsInCluster(org.infinispan.client.hotrod.event.ClientClusterEventsTest) Time elapsed: 0.119 sec <<< FAILURE!
> java.lang.AssertionError: expected:<CustomEvent{key=2, value='two', timestamp=10917205818735, counter=3}> but was:<CustomEvent{key=2, value='two', timestamp=10917204740046, counter=1}>
> 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.test.TestingUtil.assertAnyEquals(TestingUtil.java:1485)
> at org.infinispan.client.hotrod.event.CustomEventLogListener.expectSingleCustomEvent(CustomEventLogListener.java:64)
> at org.infinispan.client.hotrod.event.CustomEventLogListener.expectCreatedEvent(CustomEventLogListener.java:68)
> at org.infinispan.client.hotrod.event.ClientClusterEventsTest$4.call(ClientClusterEventsTest.java:130)
> at org.infinispan.client.hotrod.test.HotRodClientTestingUtil.withClientListener(HotRodClientTestingUtil.java:158)
> at org.infinispan.client.hotrod.event.ClientClusterEventsTest.testFilterCustomEventsInCluster(ClientClusterEventsTest.java:121)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> at java.lang.reflect.Method.invoke(Method.java:497)
> at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:84)
> 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:348)
> at org.testng.SuiteRunner.access$000(SuiteRunner.java:38)
> at org.testng.SuiteRunner$SuiteWorker.run(SuiteRunner.java:382)
> at org.testng.internal.thread.ThreadUtil$2.call(ThreadUtil.java:64)
> at java.util.concurrent.FutureTask.run(FutureTask.java:266)
> at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
> at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
> at java.lang.Thread.run(Thread.java:745)
> testFilteringInCluster(org.infinispan.client.hotrod.event.ClientClusterEventsTest) Time elapsed: 0.103 sec <<< FAILURE!
> java.lang.AssertionError:
> at org.testng.AssertJUnit.fail(AssertJUnit.java:59)
> at org.testng.AssertJUnit.assertTrue(AssertJUnit.java:24)
> at org.testng.AssertJUnit.assertNotNull(AssertJUnit.java:267)
> at org.testng.AssertJUnit.assertNotNull(AssertJUnit.java:259)
> at org.infinispan.client.hotrod.event.EventLogListener.pollEvent(EventLogListener.java:51)
> at org.infinispan.client.hotrod.event.EventLogListener.expectSingleEvent(EventLogListener.java:125)
> at org.infinispan.client.hotrod.event.EventLogListener.expectOnlyCreatedEvent(EventLogListener.java:105)
> at org.infinispan.client.hotrod.event.ClientClusterEventsTest$2.call(ClientClusterEventsTest.java:91)
> at org.infinispan.client.hotrod.test.HotRodClientTestingUtil.withClientListener(HotRodClientTestingUtil.java:147)
> at org.infinispan.client.hotrod.event.ClientClusterEventsTest.testFilteringInCluster(ClientClusterEventsTest.java:83)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> at java.lang.reflect.Method.invoke(Method.java:497)
> at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:84)
> 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:348)
> at org.testng.SuiteRunner.access$000(SuiteRunner.java:38)
> at org.testng.SuiteRunner$SuiteWorker.run(SuiteRunner.java:382)
> at org.testng.internal.thread.ThreadUtil$2.call(ThreadUtil.java:64)
> at java.util.concurrent.FutureTask.run(FutureTask.java:266)
> at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
> at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
> at java.lang.Thread.run(Thread.java:745)
> {code}
--
This message was sent by Atlassian JIRA
(v6.3.15#6346)
9 years, 8 months