3 Replies Latest reply on Nov 23, 2016 8:41 AM by nadirx

    Hybrid setup on Infinispan 8.2

    mfedko

      Hi,

       

      I've created a minimal clone of infinispan-playground-hybrid (GitHub - tristantarrant/infinispan-playground-hybrid: Infinispan Playground )  that works fine with Infinispan 7.2.5.Final.

      It's available at GitHub - mfedko/infinispan-hybrid

      It updates cache value, and able to see saved value after embedded cache restart.

       

      With Infinispan 8.2.4.Final the same app fails with the following errors, Am I doing something wrong?

       

      ноя 18, 2016 3:41:28 PM org.infinispan.remoting.transport.jgroups.JGroupsTransport start

      INFO: ISPN000078: Starting JGroups channel cluster

      ноя 18, 2016 3:41:28 PM org.jgroups.stack.Configurator resolveAndAssignField

      WARNING: JGRP000014: Discovery.timeout has been deprecated: GMS.join_timeout should be used instead

      ноя 18, 2016 3:41:28 PM org.jgroups.protocols.TP init

      WARNING: The internal thread pool was configured with only 1 min_threads; this might lead to problems when more than 1 thread is needed, e.g. when merging

      ноя 18, 2016 3:41:28 PM org.infinispan.remoting.transport.jgroups.JGroupsTransport viewAccepted

      INFO: ISPN000094: Received new cluster view for channel cluster: [nodeA|1] (2) [nodeA, embedded-47024]

      ноя 18, 2016 3:41:28 PM org.infinispan.remoting.transport.jgroups.JGroupsTransport startJGroupsChannelIfNeeded

      INFO: ISPN000079: Channel cluster local address is embedded-47024, physical addresses are [127.0.0.1:60396]

      ноя 18, 2016 3:45:28 PM org.infinispan.topology.ClusterTopologyManagerImpl fetchRebalancingStatusFromCoordinator

      WARN: ISPN000329: Unable to read rebalancing status from coordinator nodeA

      org.infinispan.util.concurrent.TimeoutException: Replication timeout for nodeA

        at org.infinispan.remoting.transport.jgroups.JGroupsTransport.checkRsp(JGroupsTransport.java:801)

        at org.infinispan.remoting.transport.jgroups.JGroupsTransport.lambda$invokeRemotelyAsync$0(JGroupsTransport.java:629)

        at java.util.concurrent.CompletableFuture.uniApply(CompletableFuture.java:602)

        at java.util.concurrent.CompletableFuture$UniApply.tryFire(CompletableFuture.java:577)

        at java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:474)

        at java.util.concurrent.CompletableFuture.complete(CompletableFuture.java:1962)

        at org.infinispan.remoting.transport.jgroups.SingleResponseFuture.call(SingleResponseFuture.java:46)

        at org.infinispan.remoting.transport.jgroups.SingleResponseFuture.call(SingleResponseFuture.java:17)

        at java.util.concurrent.FutureTask.run(FutureTask.java:266)

        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180)

        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)

        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)

       

       

      ноя 18, 2016 3:45:28 PM org.infinispan.factories.GlobalComponentRegistry start

      INFO: ISPN000128: Infinispan version: Infinispan 'Chakra' 8.2.4.Final

      Cache names: []

      ноя 18, 2016 3:45:28 PM org.infinispan.factories.GlobalComponentRegistry lambda$warnAboutUberJarDuplicates$0

      WARN: ISPN000411: Classpath does not look correct. Make sure you are not mixing uber and jars

      ноя 18, 2016 3:53:28 PM org.infinispan.remoting.transport.jgroups.JGroupsTransport stop

      INFO: ISPN000080: Disconnecting JGroups channel cluster

      ноя 18, 2016 3:53:28 PM org.infinispan.remoting.transport.jgroups.JGroupsTransport stop

      INFO: ISPN000082: Stopping the RpcDispatcher for channel cluster

      Exception in thread "main" org.infinispan.commons.CacheException: Unable to invoke method public void org.infinispan.statetransfer.StateTransferManagerImpl.start() throws java.lang.Exception on object of type StateTransferManagerImpl

        at org.infinispan.commons.util.ReflectionUtil.invokeAccessibly(ReflectionUtil.java:172)

        at org.infinispan.factories.AbstractComponentRegistry$PrioritizedMethod.invoke(AbstractComponentRegistry.java:859)

        at org.infinispan.factories.AbstractComponentRegistry.invokeStartMethods(AbstractComponentRegistry.java:628)

        at org.infinispan.factories.AbstractComponentRegistry.internalStart(AbstractComponentRegistry.java:617)

        at org.infinispan.factories.AbstractComponentRegistry.start(AbstractComponentRegistry.java:542)

        at org.infinispan.factories.ComponentRegistry.start(ComponentRegistry.java:238)

        at org.infinispan.cache.impl.CacheImpl.start(CacheImpl.java:849)

        at org.infinispan.manager.DefaultCacheManager.wireAndStartCache(DefaultCacheManager.java:635)

        at org.infinispan.manager.DefaultCacheManager.createCache(DefaultCacheManager.java:585)

        at org.infinispan.manager.DefaultCacheManager.getCache(DefaultCacheManager.java:451)

        at org.infinispan.manager.DefaultCacheManager.getCache(DefaultCacheManager.java:437)

        at com.github.mfedko.infinispan.HybridCluster.getCache(HybridCluster.java:88)

        at com.github.mfedko.infinispan.HybridCacheTest.getCache(HybridCacheTest.java:55)

        at com.github.mfedko.infinispan.HybridCacheTest.main(HybridCacheTest.java:32)

        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:498)

        at com.intellij.rt.execution.application.AppMain.main(AppMain.java:147)

      Caused by: org.infinispan.util.concurrent.TimeoutException: Replication timeout for nodeA

        at org.infinispan.remoting.transport.jgroups.JGroupsTransport.checkRsp(JGroupsTransport.java:801)

        at org.infinispan.remoting.transport.jgroups.JGroupsTransport.lambda$invokeRemotelyAsync$0(JGroupsTransport.java:629)

        at java.util.concurrent.CompletableFuture.uniApply(CompletableFuture.java:602)

        at java.util.concurrent.CompletableFuture$UniApply.tryFire(CompletableFuture.java:577)

        at java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:474)

        at java.util.concurrent.CompletableFuture.complete(CompletableFuture.java:1962)

        at org.infinispan.remoting.transport.jgroups.SingleResponseFuture.call(SingleResponseFuture.java:46)

        at org.infinispan.remoting.transport.jgroups.SingleResponseFuture.call(SingleResponseFuture.java:17)

        at java.util.concurrent.FutureTask.run(FutureTask.java:266)

        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180)

        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)

        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)

        • 1. Re: Hybrid setup on Infinispan 8.2
          nadirx

          Yes, that is definitely outdated. I will refresh that repo to work with 8.2.x as well as using streams instead of map/reduce.

           

          Tristan

          • 2. Re: Hybrid setup on Infinispan 8.2
            mfedko

            Tristan, thanks for the response.

            May be you can give a quick hint on the root cause of the error?

            • 3. Re: Hybrid setup on Infinispan 8.2
              nadirx

              Sorry Mikhail,

              I actually started working on fixing my branch, but got sidetracked by other things.

              The reason this doesn't work is because Infinispan Server 7.x uses a JGroups MuxChannel to create multiple subchannels. In Infinispan Server 8.x we actually take advantage of JGroups FORK which is a much better solution.

              I'm also replacing the Map Reduce approach with a Streams-based one.

              With Infinispan 8.1+ you can also use server-deployed tasks to perform this kind of processing and invoking them over Hot Rod.