[JBoss JIRA] (ISPN-9542) DistributedStreamRehashStressTest fails many of the tests
by William Burns (JIRA)
[ https://issues.jboss.org/browse/ISPN-9542?page=com.atlassian.jira.plugin.... ]
William Burns commented on ISPN-9542:
-------------------------------------
Another failure is:
{code}
java.lang.AssertionError: We didn't get a matching size! Expected 25000 but was 24247 expected [24247] but found [25000]
Expected :24247
Actual :25000
<Click to see difference>
at org.testng.Assert.fail(Assert.java:94)
at org.testng.Assert.failNotEquals(Assert.java:496)
at org.testng.Assert.assertEquals(Assert.java:125)
at org.testng.Assert.assertEquals(Assert.java:267)
at org.infinispan.stream.stress.DistributedStreamRehashStressTest.lambda$testStressNodesLeavingWhileMultipleCount$1(DistributedStreamRehashStressTest.java:96)
at org.infinispan.stream.stress.DistributedStreamRehashStressTest.lambda$testStressNodesLeavingWhilePerformingCallable$5(DistributedStreamRehashStressTest.java:190)
at org.infinispan.commands.StressTest.lambda$forkWorkerThreads$1(StressTest.java:96)
at org.infinispan.test.AbstractInfinispanTest$CallableWrapper.call(AbstractInfinispanTest.java:528)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
{code}
> DistributedStreamRehashStressTest fails many of the tests
> ---------------------------------------------------------
>
> Key: ISPN-9542
> URL: https://issues.jboss.org/browse/ISPN-9542
> Project: Infinispan
> Issue Type: Bug
> Components: Streams
> Affects Versions: 9.4.0.CR3
> Reporter: William Burns
> Assignee: William Burns
>
> Many of the stress tests either fail, timeout or say they processed no iterations. We need to ensure these are working properly. One of the causes was from https://github.com/infinispan/infinispan/pull/6270/files#r220378591. That luckily is a simple fix, however we need to plug the others.
--
This message was sent by Atlassian JIRA
(v7.5.0#75005)
7 years, 6 months
[JBoss JIRA] (ISPN-9541) Modules should not replace components after they were registered
by Dan Berindei (JIRA)
Dan Berindei created ISPN-9541:
----------------------------------
Summary: Modules should not replace components after they were registered
Key: ISPN-9541
URL: https://issues.jboss.org/browse/ISPN-9541
Project: Infinispan
Issue Type: Bug
Components: Core, Server
Affects Versions: 9.4.0.CR3
Reporter: Dan Berindei
Assignee: Dan Berindei
Fix For: 9.4.0.Final
In my ISPN-9127 fix I created a {{BasicComponentRegistry}} interface that represents a mostly-read-only collection of components. It has {{replaceComponent()}} method and a {{rewire()}} method for testing purposes, but it turns out modules were also relying on the ability to replace existing components in order to work.
Replacing global components is normally safe during the {{ModuleLifecycle.cacheManagerStarting()}}, because none of the components are started yet, so when a component starts later we can still start its dependencies first. But because some modules starts some global components, e.g. by calling {{manager.getCache(name)}}, that assumption breaks.
The {{infinispan-server-event-logger}} module is a bit more sneaky: it doesn't replace a component, instead it replaces the actual implementation of the event logger in the {{EventLogManager}} component. Events that happen before the module's {{cacheManagerStarting()}} or after {{cacheManagerStopping()}} will be silently dropped from the persistent event log.
I am investigating making the module a factory of factories. Instead of having a monolitic {{cacheManagerStarting()}} method, it could define a set of components that it can create, and a set of components that should be started before the cache manager is "running". We probably need a way to depend on other modules as well, maybe reusing the {{@Inject}} and {{@ComponentName}} annotations.
--
This message was sent by Atlassian JIRA
(v7.5.0#75005)
7 years, 6 months
[JBoss JIRA] (ISPN-9541) Modules should not replace components after they were registered
by Dan Berindei (JIRA)
[ https://issues.jboss.org/browse/ISPN-9541?page=com.atlassian.jira.plugin.... ]
Dan Berindei updated ISPN-9541:
-------------------------------
Status: Open (was: New)
> Modules should not replace components after they were registered
> ----------------------------------------------------------------
>
> Key: ISPN-9541
> URL: https://issues.jboss.org/browse/ISPN-9541
> Project: Infinispan
> Issue Type: Bug
> Components: Core, Server
> Affects Versions: 9.4.0.CR3
> Reporter: Dan Berindei
> Assignee: Dan Berindei
> Fix For: 9.4.0.Final
>
>
> In my ISPN-9127 fix I created a {{BasicComponentRegistry}} interface that represents a mostly-read-only collection of components. It has {{replaceComponent()}} method and a {{rewire()}} method for testing purposes, but it turns out modules were also relying on the ability to replace existing components in order to work.
> Replacing global components is normally safe during the {{ModuleLifecycle.cacheManagerStarting()}}, because none of the components are started yet, so when a component starts later we can still start its dependencies first. But because some modules starts some global components, e.g. by calling {{manager.getCache(name)}}, that assumption breaks.
> The {{infinispan-server-event-logger}} module is a bit more sneaky: it doesn't replace a component, instead it replaces the actual implementation of the event logger in the {{EventLogManager}} component. Events that happen before the module's {{cacheManagerStarting()}} or after {{cacheManagerStopping()}} will be silently dropped from the persistent event log.
> I am investigating making the module a factory of factories. Instead of having a monolitic {{cacheManagerStarting()}} method, it could define a set of components that it can create, and a set of components that should be started before the cache manager is "running". We probably need a way to depend on other modules as well, maybe reusing the {{@Inject}} and {{@ComponentName}} annotations.
--
This message was sent by Atlassian JIRA
(v7.5.0#75005)
7 years, 6 months
[JBoss JIRA] (ISPN-7272) Remove replication statistics from RpcManagerImpl
by Dan Berindei (JIRA)
[ https://issues.jboss.org/browse/ISPN-7272?page=com.atlassian.jira.plugin.... ]
Dan Berindei updated ISPN-7272:
-------------------------------
Fix Version/s: (was: 9.4.0.Final)
> Remove replication statistics from RpcManagerImpl
> -------------------------------------------------
>
> Key: ISPN-7272
> URL: https://issues.jboss.org/browse/ISPN-7272
> Project: Infinispan
> Issue Type: Task
> Components: Core
> Affects Versions: 8.1.6.Final, 9.0.0.Alpha4
> Reporter: Dan Berindei
> Assignee: Dan Berindei
>
> The replication statistics exposed by {{RpcManagerImpl}} are too low-level. For instance, in non-transactional caches, the times of the RPCs from the primary to the backups are counted both on the primary and on the originator (as part of the originator-to-primary RPC). They also aren't split by operation, like the {{CacheMgmtInterceptor}} statistics, which makes them even less useful.
> The triangle algorithm changes things again, but only for distributed caches, so there is now one more way of interpreting the {{RpcManagerImpl}} statistics. It would be better to remove them altogether.
--
This message was sent by Atlassian JIRA
(v7.5.0#75005)
7 years, 6 months
[JBoss JIRA] (ISPN-7272) Remove replication statistics from RpcManagerImpl
by Dan Berindei (JIRA)
[ https://issues.jboss.org/browse/ISPN-7272?page=com.atlassian.jira.plugin.... ]
Dan Berindei reassigned ISPN-7272:
----------------------------------
Assignee: (was: Dan Berindei)
> Remove replication statistics from RpcManagerImpl
> -------------------------------------------------
>
> Key: ISPN-7272
> URL: https://issues.jboss.org/browse/ISPN-7272
> Project: Infinispan
> Issue Type: Task
> Components: Core
> Affects Versions: 8.1.6.Final, 9.0.0.Alpha4
> Reporter: Dan Berindei
>
> The replication statistics exposed by {{RpcManagerImpl}} are too low-level. For instance, in non-transactional caches, the times of the RPCs from the primary to the backups are counted both on the primary and on the originator (as part of the originator-to-primary RPC). They also aren't split by operation, like the {{CacheMgmtInterceptor}} statistics, which makes them even less useful.
> The triangle algorithm changes things again, but only for distributed caches, so there is now one more way of interpreting the {{RpcManagerImpl}} statistics. It would be better to remove them altogether.
--
This message was sent by Atlassian JIRA
(v7.5.0#75005)
7 years, 6 months