Uploaded image for project: 'WildFly'
  1. WildFly
  2. WFLY-6203

CNFE when offloading data to remote JDG server

    XMLWordPrintable

Details

    Description

      Getting the following error when there's a remote-store configured which offloads data to a remote JDG server: ClassNotFoundException: org.infinispan.client.hotrod.impl.transport.tcp.RoundRobinBalancingStrategy

      The dependency on <module name="org.infinispan.client.hotrod"/> can not be found anywhere in the wildfly clustering modules which is the cause. I've tried adding this to the module org.wildfly.clustering.service and it fixed the problem, but this is probably not the right location.

      Whole stack trace below.

      09:53:56,285 ERROR [org.jboss.msc.service.fail] (ServerService Thread Pool -- 69) MSC000001: Failed to start service jboss.infinispan.web."clusterbench-ee7.ear.cb.war": org.jboss.msc.service.StartException in service jboss.infinispan.web."clusterbench-ee7.ear.cb.war": org.infinispan.commons.CacheException: Unable to invoke method public void org.infinispan.persistence.manager.PersistenceManagerImpl.start() on object of type PersistenceManagerImpl
          at org.wildfly.clustering.service.AsynchronousServiceBuilder$1.run(AsynchronousServiceBuilder.java:107)
          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)
          at org.jboss.threads.JBossThread.run(JBossThread.java:320)
      Caused by: org.infinispan.commons.CacheException: Unable to invoke method public void org.infinispan.persistence.manager.PersistenceManagerImpl.start() on object of type PersistenceManagerImpl
          at org.infinispan.commons.util.ReflectionUtil.invokeAccessibly(ReflectionUtil.java:172)
          at org.infinispan.factories.AbstractComponentRegistry$PrioritizedMethod.invoke(AbstractComponentRegistry.java:887)
          at org.infinispan.factories.AbstractComponentRegistry.invokeStartMethods(AbstractComponentRegistry.java:656)
          at org.infinispan.factories.AbstractComponentRegistry.internalStart(AbstractComponentRegistry.java:645)
          at org.infinispan.factories.AbstractComponentRegistry.start(AbstractComponentRegistry.java:548)
          at org.infinispan.factories.ComponentRegistry.start(ComponentRegistry.java:222)
          at org.infinispan.cache.impl.CacheImpl.start(CacheImpl.java:849)
          at org.infinispan.manager.DefaultCacheManager.wireAndStartCache(DefaultCacheManager.java:621)
          at org.infinispan.manager.DefaultCacheManager.createCache(DefaultCacheManager.java:572)
          at org.infinispan.manager.DefaultCacheManager.getCache(DefaultCacheManager.java:440)
          at org.jboss.as.clustering.infinispan.DefaultCacheContainer.lambda$getCache$6(DefaultCacheContainer.java:119)
          at org.jboss.as.clustering.infinispan.DefaultCacheContainer$$Lambda$100/1486346797.run(Unknown Source)
          at org.jboss.as.clustering.infinispan.DefaultCacheContainer.getCache(DefaultCacheContainer.java:120)
          at org.jboss.as.clustering.infinispan.DefaultCacheContainer.getCache(DefaultCacheContainer.java:114)
          at org.wildfly.clustering.infinispan.spi.service.CacheBuilder.start(CacheBuilder.java:80)
          at org.wildfly.clustering.service.AsynchronousServiceBuilder$1.run(AsynchronousServiceBuilder.java:102)
          ... 4 more
      Caused by: org.infinispan.commons.CacheException: Unable to start cache loaders
          at org.infinispan.persistence.manager.PersistenceManagerImpl.start(PersistenceManagerImpl.java:174)
          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.infinispan.commons.util.ReflectionUtil.invokeAccessibly(ReflectionUtil.java:168)
          ... 19 more
      Caused by: org.infinispan.commons.CacheConfigurationException: Unable to instantiate class org.infinispan.client.hotrod.impl.transport.tcp.RoundRobinBalancingStrategy
          at org.infinispan.commons.util.Util.loadClass(Util.java:103)
          at org.infinispan.client.hotrod.configuration.ConfigurationBuilder.balancingStrategy(ConfigurationBuilder.java:125)
          at org.infinispan.persistence.remote.RemoteStore.buildRemoteConfiguration(RemoteStore.java:221)
          at org.infinispan.persistence.remote.RemoteStore.start(RemoteStore.java:89)
          at org.infinispan.persistence.manager.PersistenceManagerImpl.start(PersistenceManagerImpl.java:141)
          ... 24 more
      Caused by: java.lang.ClassNotFoundException: org.infinispan.client.hotrod.impl.transport.tcp.RoundRobinBalancingStrategy from [Module "org.wildfly.clustering.service:main" from local module loader @4c75cab9 (finder: local module finder @1ef7fe8e (roots: /home/mgencur/containers/eap7/jboss-eap-7.0/modules,/home/mgencur/containers/eap7/jboss-eap-7.0/modules/system/layers/base))]
          at org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:198)
          at org.jboss.modules.ConcurrentClassLoader.performLoadClassUnchecked(ConcurrentClassLoader.java:363)
          at org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:351)
          at org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:93)
          at java.lang.Class.forName0(Native Method)
          at java.lang.Class.forName(Class.java:348)
          at org.infinispan.commons.util.Util.loadClassStrict(Util.java:158)
          at org.infinispan.commons.util.Util.loadClass(Util.java:101)
          ... 28 more
      

      My cache configuration looks like this:

      <replicated-cache name="offload" mode="SYNC">
                          <transaction mode="BATCH"/>
                          <remote-store cache="default" socket-timeout="60000" remote-servers="remote-jdg-server1" passivation="false" preload="true" purge="false" shared="true"/>
                      </replicated-cache>
      

      There's also a remote endpoint defined:

      <outbound-socket-binding name="remote-jdg-server1">
          <remote-destination host="localhost" port="11222"/>
        </outbound-socket-binding>
      

      I'm using the clusterbench-eet.ear application and just deploy it to EAP. Application attached.

      Attachments

        Issue Links

          Activity

            Public project attachment banner

              context keys: [headless, issue, helper, isAsynchronousRequest, project, action, user]
              current Project key: WFLY

              People

                pferraro@redhat.com Paul Ferraro
                pferraro@redhat.com Paul Ferraro
                Votes:
                0 Vote for this issue
                Watchers:
                2 Start watching this issue

                Dates

                  Created:
                  Updated:
                  Resolved: