[JBoss JIRA] (ISPN-3936) State transfer should not modify shared cache stores
by Dan Berindei (JIRA)
[ https://issues.jboss.org/browse/ISPN-3936?page=com.atlassian.jira.plugin.... ]
Dan Berindei reassigned ISPN-3936:
----------------------------------
Assignee: Dan Berindei (was: Mircea Markus)
> State transfer should not modify shared cache stores
> ----------------------------------------------------
>
> Key: ISPN-3936
> URL: https://issues.jboss.org/browse/ISPN-3936
> Project: Infinispan
> Issue Type: Bug
> Components: Core, State Transfer
> Affects Versions: 6.0.0.Final
> Reporter: Dan Berindei
> Assignee: Dan Berindei
> Priority: Critical
> Fix For: 7.0.0.Alpha1, 7.0.0.Final
>
>
> When installing a new topology, we invalidate the cache entries that are no longer mapped to the local node. We also iterate over the entries in the cache stores and delete the ones that are no longer local, but this should only happen if the cache store is not shared.
> We had similar issues in the past, but this seems to be related to the new cache store API introduced in 6.0.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira
11 years, 1 month
[JBoss JIRA] (ISPN-3872) Invalid transaction and invocation batching configuration resulting in ClassCastException
by Pedro Ruivo (JIRA)
[ https://issues.jboss.org/browse/ISPN-3872?page=com.atlassian.jira.plugin.... ]
Pedro Ruivo updated ISPN-3872:
------------------------------
Status: Resolved (was: Pull Request Sent)
Resolution: Done
> Invalid transaction and invocation batching configuration resulting in ClassCastException
> -----------------------------------------------------------------------------------------
>
> Key: ISPN-3872
> URL: https://issues.jboss.org/browse/ISPN-3872
> Project: Infinispan
> Issue Type: Bug
> Components: Configuration, Transactions
> Affects Versions: 6.0.1.Final
> Reporter: Galder Zamarreño
> Assignee: Galder Zamarreño
> Labels: invocation-batching
> Fix For: 7.0.0.Alpha1, 7.0.0.Final
>
>
> This test:
> {code}
> public void testInvalidBatchingAndTransactionConfiguration() {
> ConfigurationBuilder builder = new ConfigurationBuilder();
> builder.invocationBatching().enable();
> builder.transaction().transactionMode(TransactionMode.TRANSACTIONAL);
> builder.transaction().useSynchronization(false);
> builder.transaction().recovery().enable();
> withCacheManager(new CacheManagerCallable(
> TestCacheManagerFactory.createCacheManager(builder)) {
> @Override
> public void call() {
> cm.getCache();
> }
> });
> }
> {code}
> Results in:
> {code}
> org.infinispan.commons.CacheException: Unable to invoke method public void org.infinispan.transaction.xa.recovery.RecoveryManagerImpl.init(org.infinispan.remoting.rpc.RpcManager,org.infinispan.commands.CommandsFactory,org.infinispan.transaction.TransactionTable,org.infinispan.transaction.TransactionCoordinator,org.infinispan.transaction.xa.TransactionFactory) on object of type RecoveryManagerImpl with parameters [null, org.infinispan.commands.CommandsFactoryImpl@782d8a2f, org.infinispan.transaction.TransactionTable@75cb514c, org.infinispan.transaction.TransactionCoordinator@774690fe, org.infinispan.transaction.xa.TransactionFactory@39d950df]
> at org.infinispan.commons.util.ReflectionUtil.invokeAccessibly(ReflectionUtil.java:185)
> at org.infinispan.factories.AbstractComponentRegistry.invokeInjectionMethod(AbstractComponentRegistry.java:229)
> at org.infinispan.factories.AbstractComponentRegistry.access$000(AbstractComponentRegistry.java:65)
> at org.infinispan.factories.AbstractComponentRegistry$Component.injectDependencies(AbstractComponentRegistry.java:797)
> at org.infinispan.factories.AbstractComponentRegistry.registerComponentInternal(AbstractComponentRegistry.java:201)
> at org.infinispan.factories.ComponentRegistry.registerComponentInternal(ComponentRegistry.java:187)
> at org.infinispan.factories.AbstractComponentRegistry.registerComponent(AbstractComponentRegistry.java:156)
> at org.infinispan.factories.AbstractComponentRegistry.getOrCreateComponent(AbstractComponentRegistry.java:277)
> at org.infinispan.factories.ComponentRegistry.getOrCreateComponent(ComponentRegistry.java:150)
> at org.infinispan.factories.AbstractComponentRegistry.invokeInjectionMethod(AbstractComponentRegistry.java:227)
> at org.infinispan.factories.AbstractComponentRegistry.access$000(AbstractComponentRegistry.java:65)
> at org.infinispan.factories.AbstractComponentRegistry$Component.injectDependencies(AbstractComponentRegistry.java:797)
> at org.infinispan.factories.AbstractComponentRegistry.registerComponentInternal(AbstractComponentRegistry.java:201)
> at org.infinispan.factories.ComponentRegistry.registerComponentInternal(ComponentRegistry.java:187)
> at org.infinispan.factories.AbstractComponentRegistry.registerComponent(AbstractComponentRegistry.java:156)
> at org.infinispan.factories.AbstractComponentRegistry.getOrCreateComponent(AbstractComponentRegistry.java:277)
> at org.infinispan.factories.ComponentRegistry.getOrCreateComponent(ComponentRegistry.java:150)
> at org.infinispan.factories.AbstractComponentRegistry.invokeInjectionMethod(AbstractComponentRegistry.java:227)
> at org.infinispan.factories.AbstractComponentRegistry.access$000(AbstractComponentRegistry.java:65)
> at org.infinispan.factories.AbstractComponentRegistry$Component.injectDependencies(AbstractComponentRegistry.java:797)
> at org.infinispan.factories.AbstractComponentRegistry.registerComponentInternal(AbstractComponentRegistry.java:201)
> at org.infinispan.factories.ComponentRegistry.registerComponentInternal(ComponentRegistry.java:187)
> at org.infinispan.factories.AbstractComponentRegistry.registerComponent(AbstractComponentRegistry.java:156)
> at org.infinispan.factories.AbstractComponentRegistry.getOrCreateComponent(AbstractComponentRegistry.java:277)
> at org.infinispan.factories.ComponentRegistry.getOrCreateComponent(ComponentRegistry.java:150)
> at org.infinispan.factories.AbstractComponentRegistry.invokeInjectionMethod(AbstractComponentRegistry.java:227)
> at org.infinispan.factories.AbstractComponentRegistry.access$000(AbstractComponentRegistry.java:65)
> at org.infinispan.factories.AbstractComponentRegistry$Component.injectDependencies(AbstractComponentRegistry.java:797)
> at org.infinispan.factories.AbstractComponentRegistry.registerComponentInternal(AbstractComponentRegistry.java:201)
> at org.infinispan.factories.ComponentRegistry.registerComponentInternal(ComponentRegistry.java:187)
> at org.infinispan.factories.AbstractComponentRegistry.registerComponent(AbstractComponentRegistry.java:156)
> at org.infinispan.factories.AbstractComponentRegistry.registerComponent(AbstractComponentRegistry.java:148)
> at org.infinispan.factories.InterceptorChainFactory.register(InterceptorChainFactory.java:60)
> at org.infinispan.factories.InterceptorChainFactory.createInterceptor(InterceptorChainFactory.java:49)
> at org.infinispan.factories.InterceptorChainFactory.buildInterceptorChain(InterceptorChainFactory.java:128)
> at org.infinispan.factories.InterceptorChainFactory.construct(InterceptorChainFactory.java:307)
> at org.infinispan.factories.AbstractComponentRegistry.getOrCreateComponent(AbstractComponentRegistry.java:272)
> at org.infinispan.factories.ComponentRegistry.getOrCreateComponent(ComponentRegistry.java:150)
> at org.infinispan.factories.AbstractComponentRegistry.invokeInjectionMethod(AbstractComponentRegistry.java:227)
> at org.infinispan.factories.AbstractComponentRegistry.access$000(AbstractComponentRegistry.java:65)
> at org.infinispan.factories.AbstractComponentRegistry$Component.injectDependencies(AbstractComponentRegistry.java:797)
> at org.infinispan.factories.AbstractComponentRegistry.registerComponentInternal(AbstractComponentRegistry.java:201)
> at org.infinispan.factories.ComponentRegistry.registerComponentInternal(ComponentRegistry.java:187)
> at org.infinispan.factories.AbstractComponentRegistry.registerComponent(AbstractComponentRegistry.java:156)
> at org.infinispan.factories.AbstractComponentRegistry.getOrCreateComponent(AbstractComponentRegistry.java:277)
> at org.infinispan.factories.ComponentRegistry.getOrCreateComponent(ComponentRegistry.java:150)
> at org.infinispan.factories.AbstractComponentRegistry.invokeInjectionMethod(AbstractComponentRegistry.java:227)
> at org.infinispan.factories.AbstractComponentRegistry.access$000(AbstractComponentRegistry.java:65)
> at org.infinispan.factories.AbstractComponentRegistry$Component.injectDependencies(AbstractComponentRegistry.java:797)
> at org.infinispan.factories.AbstractComponentRegistry.registerComponentInternal(AbstractComponentRegistry.java:201)
> at org.infinispan.factories.ComponentRegistry.registerComponentInternal(ComponentRegistry.java:187)
> at org.infinispan.factories.AbstractComponentRegistry.registerComponent(AbstractComponentRegistry.java:156)
> at org.infinispan.factories.AbstractComponentRegistry.getOrCreateComponent(AbstractComponentRegistry.java:277)
> at org.infinispan.factories.ComponentRegistry.getOrCreateComponent(ComponentRegistry.java:150)
> at org.infinispan.factories.AbstractComponentRegistry.invokeInjectionMethod(AbstractComponentRegistry.java:227)
> at org.infinispan.factories.AbstractComponentRegistry.access$000(AbstractComponentRegistry.java:65)
> at org.infinispan.factories.AbstractComponentRegistry$Component.injectDependencies(AbstractComponentRegistry.java:797)
> at org.infinispan.factories.AbstractComponentRegistry.registerComponentInternal(AbstractComponentRegistry.java:201)
> at org.infinispan.factories.ComponentRegistry.registerComponentInternal(ComponentRegistry.java:187)
> at org.infinispan.factories.AbstractComponentRegistry.registerComponent(AbstractComponentRegistry.java:156)
> at org.infinispan.factories.AbstractComponentRegistry.getOrCreateComponent(AbstractComponentRegistry.java:277)
> at org.infinispan.factories.ComponentRegistry.getOrCreateComponent(ComponentRegistry.java:150)
> at org.infinispan.factories.AbstractComponentRegistry.invokeInjectionMethod(AbstractComponentRegistry.java:227)
> at org.infinispan.factories.AbstractComponentRegistry.access$000(AbstractComponentRegistry.java:65)
> at org.infinispan.factories.AbstractComponentRegistry$Component.injectDependencies(AbstractComponentRegistry.java:797)
> at org.infinispan.factories.AbstractComponentRegistry.registerComponentInternal(AbstractComponentRegistry.java:201)
> at org.infinispan.factories.ComponentRegistry.registerComponentInternal(ComponentRegistry.java:187)
> at org.infinispan.factories.AbstractComponentRegistry.registerComponent(AbstractComponentRegistry.java:156)
> at org.infinispan.factories.AbstractComponentRegistry.getOrCreateComponent(AbstractComponentRegistry.java:277)
> at org.infinispan.factories.ComponentRegistry.getOrCreateComponent(ComponentRegistry.java:150)
> at org.infinispan.factories.AbstractComponentRegistry.invokeInjectionMethod(AbstractComponentRegistry.java:227)
> at org.infinispan.factories.AbstractComponentRegistry.access$000(AbstractComponentRegistry.java:65)
> at org.infinispan.factories.AbstractComponentRegistry$Component.injectDependencies(AbstractComponentRegistry.java:797)
> at org.infinispan.factories.AbstractComponentRegistry.registerComponentInternal(AbstractComponentRegistry.java:201)
> at org.infinispan.factories.ComponentRegistry.registerComponentInternal(ComponentRegistry.java:187)
> at org.infinispan.factories.AbstractComponentRegistry.registerComponent(AbstractComponentRegistry.java:156)
> at org.infinispan.factories.AbstractComponentRegistry.getOrCreateComponent(AbstractComponentRegistry.java:277)
> at org.infinispan.factories.ComponentRegistry.getOrCreateComponent(ComponentRegistry.java:150)
> at org.infinispan.factories.AbstractComponentRegistry.invokeInjectionMethod(AbstractComponentRegistry.java:227)
> at org.infinispan.factories.AbstractComponentRegistry.access$000(AbstractComponentRegistry.java:65)
> at org.infinispan.factories.AbstractComponentRegistry$Component.injectDependencies(AbstractComponentRegistry.java:797)
> at org.infinispan.factories.AbstractComponentRegistry.registerComponentInternal(AbstractComponentRegistry.java:201)
> at org.infinispan.factories.ComponentRegistry.registerComponentInternal(ComponentRegistry.java:187)
> at org.infinispan.factories.AbstractComponentRegistry.registerComponent(AbstractComponentRegistry.java:156)
> at org.infinispan.factories.AbstractComponentRegistry.getOrCreateComponent(AbstractComponentRegistry.java:277)
> at org.infinispan.factories.ComponentRegistry.getOrCreateComponent(ComponentRegistry.java:150)
> at org.infinispan.factories.AbstractComponentRegistry.invokeInjectionMethod(AbstractComponentRegistry.java:227)
> at org.infinispan.factories.AbstractComponentRegistry.access$000(AbstractComponentRegistry.java:65)
> at org.infinispan.factories.AbstractComponentRegistry$Component.injectDependencies(AbstractComponentRegistry.java:797)
> at org.infinispan.factories.AbstractComponentRegistry.registerComponentInternal(AbstractComponentRegistry.java:201)
> at org.infinispan.factories.ComponentRegistry.registerComponentInternal(ComponentRegistry.java:187)
> at org.infinispan.factories.AbstractComponentRegistry.registerComponent(AbstractComponentRegistry.java:156)
> at org.infinispan.factories.AbstractComponentRegistry.getOrCreateComponent(AbstractComponentRegistry.java:277)
> at org.infinispan.factories.ComponentRegistry.getOrCreateComponent(ComponentRegistry.java:150)
> at org.infinispan.factories.AbstractComponentRegistry.invokeInjectionMethod(AbstractComponentRegistry.java:227)
> at org.infinispan.factories.AbstractComponentRegistry.access$000(AbstractComponentRegistry.java:65)
> at org.infinispan.factories.AbstractComponentRegistry$Component.injectDependencies(AbstractComponentRegistry.java:797)
> at org.infinispan.factories.AbstractComponentRegistry.registerComponentInternal(AbstractComponentRegistry.java:201)
> at org.infinispan.factories.ComponentRegistry.registerComponentInternal(ComponentRegistry.java:187)
> at org.infinispan.factories.AbstractComponentRegistry.registerComponent(AbstractComponentRegistry.java:156)
> at org.infinispan.factories.InternalCacheFactory.bootstrap(InternalCacheFactory.java:79)
> at org.infinispan.factories.InternalCacheFactory.createAndWire(InternalCacheFactory.java:58)
> at org.infinispan.factories.InternalCacheFactory.createCache(InternalCacheFactory.java:42)
> at org.infinispan.manager.DefaultCacheManager.wireAndStartCache(DefaultCacheManager.java:549)
> at org.infinispan.manager.DefaultCacheManager.createCache(DefaultCacheManager.java:516)
> at org.infinispan.manager.DefaultCacheManager.getCache(DefaultCacheManager.java:398)
> at org.infinispan.manager.DefaultCacheManager.getCache(DefaultCacheManager.java:371)
> at org.infinispan.configuration.ConfigurationValidationTest$1.call(ConfigurationValidationTest.java:112)
> at org.infinispan.test.TestingUtil.withCacheManager(TestingUtil.java:1243)
> at org.infinispan.configuration.ConfigurationValidationTest.testInvalidBatchingAndTransactionConfiguration(ConfigurationValidationTest.java:108)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> at java.lang.reflect.Method.invoke(Method.java:606)
> 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.runSequentially(SuiteRunner.java:329)
> at org.testng.SuiteRunner.privateRun(SuiteRunner.java:291)
> at org.testng.SuiteRunner.run(SuiteRunner.java:240)
> at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
> at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:86)
> at org.testng.TestNG.runSuitesSequentially(TestNG.java:1198)
> at org.testng.TestNG.runSuitesLocally(TestNG.java:1123)
> at org.testng.TestNG.run(TestNG.java:1031)
> at org.testng.remote.RemoteTestNG.run(RemoteTestNG.java:111)
> at org.testng.remote.RemoteTestNG.initAndRun(RemoteTestNG.java:204)
> at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:175)
> at org.testng.RemoteTestNGStarter.main(RemoteTestNGStarter.java:125)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> at java.lang.reflect.Method.invoke(Method.java:606)
> at com.intellij.rt.execution.application.AppMain.main(AppMain.java:120)
> Caused by: java.lang.ClassCastException: org.infinispan.transaction.TransactionTable cannot be cast to org.infinispan.transaction.xa.recovery.RecoveryAwareTransactionTable
> at org.infinispan.transaction.xa.recovery.RecoveryManagerImpl.init(RecoveryManagerImpl.java:79)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> at java.lang.reflect.Method.invoke(Method.java:606)
> at org.infinispan.commons.util.ReflectionUtil.invokeAccessibly(ReflectionUtil.java:183)
> ... 139 more
> {code}
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira
11 years, 1 month
[JBoss JIRA] (ISPN-3293) Putting entries with memcached is ignoring the queue-flush-interval parameter
by Galder Zamarreño (JIRA)
[ https://issues.jboss.org/browse/ISPN-3293?page=com.atlassian.jira.plugin.... ]
Galder Zamarreño commented on ISPN-3293:
----------------------------------------
Saw this as I was reviewing https://github.com/infinispan/infinispan/pull/2341. Not sure why the synchronous put happens (Dan?), but we should probably at least document it. Tristan?
> Putting entries with memcached is ignoring the queue-flush-interval parameter
> -----------------------------------------------------------------------------
>
> Key: ISPN-3293
> URL: https://issues.jboss.org/browse/ISPN-3293
> Project: Infinispan
> Issue Type: Bug
> Components: Server
> Reporter: Jakub Markos
> Assignee: Tristan Tarrant
> Attachments: server1.log, server2.log
>
>
> I have a cluster of 2 nodes with the following configuration:
> {code:xml}
> <replicated-cache name="memcachedCache"
> start="EAGER"
> mode="ASYNC"
> batching="false"
> queue-size="1000"
> queue-flush-interval="15000">
> </replicated-cache>
> {code}
> The following code (MemcachedHelper is a memcached client)
> {code}
> mc1 = new MemcachedHelper(server1.getMemcachedEndpoint().getInetAddress().getHostName(), server1.getMemcachedEndpoint().getPort());
> mc2 = new MemcachedHelper(server2.getMemcachedEndpoint().getInetAddress().getHostName(), server2.getMemcachedEndpoint().getPort());
> mc1.set("key1", "value1");
> assertTrue(null != mc1.get("key1"));
> assertTrue(null == mc2.get("key1"));
> {code}
> fails on the 2nd assert, because the entry is retrieved.
> According to logs (attached), the replication queue is correctly flushed after 15 seconds with 1 element (and happens after the gets).
> Works correctly with hotrod (entry is replicated only after the flush happens).
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira
11 years, 1 month
[JBoss JIRA] (ISPN-3903) Transaction Code Optimizations
by Galder Zamarreño (JIRA)
[ https://issues.jboss.org/browse/ISPN-3903?page=com.atlassian.jira.plugin.... ]
Galder Zamarreño updated ISPN-3903:
-----------------------------------
Status: Resolved (was: Pull Request Sent)
Resolution: Done
> Transaction Code Optimizations
> ------------------------------
>
> Key: ISPN-3903
> URL: https://issues.jboss.org/browse/ISPN-3903
> Project: Infinispan
> Issue Type: Enhancement
> Components: Transactions
> Affects Versions: 6.0.1.Final
> Reporter: Pedro Ruivo
> Assignee: Pedro Ruivo
> Fix For: 7.0.0.Alpha1
>
>
> Currently, I found the following problems (so far, last update 18/01, 17h30, fix in progress):
> * the LocalTxInvocationContext is creating an empty map every time a new instance is created. It originates >10GB of data in 5min. It can use the Collections.emptyMap()
> * TransactionCoordinator is creating LocalTxInvocationContext twice when commit. First, prepare() method creates LocalTxInvocationContext and if it is read only, it invokes commitInternal (that will create a new LocalTxInvocationContext). The same for commit() method when the transaction is one phase. commitInternal() can reuse the LocalTxInvocationContext since they are stateless (and they already have a reference for the LocalTransaction).
> * Refactor LocalTxInvocationContext and RemoteTxInvocationContext
> Results (for 5 min profiling):
> * HashMap allocation reduced from 20.80GB to 3.76GB
> * LocalTxInvocationContext allocation reduced from 13.80GB to 7.44GB
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira
11 years, 1 month