1 Reply Latest reply on Oct 12, 2018 9:21 AM by pferraro

    Wildfly 10.0.1 throwinig Infinispan cache issue with jdk10 for 2 node cluster

    sandipaot

      I have 2 wildfly cluster node say node1 and node2, I using ActiveMQ and and Infinispan in my application.I am getting the below error while trying to start it with jdk10 but same is working fine for jdk1.8. Please find the below stack trace:

       

      2018-09-20 04:58:26,551 ERROR [org.jboss.msc.service.fail] (MSC service thread 1-2) MSC000001: Failed to start service jboss.infinispan.server: org.jboss.msc.service.StartException in service jboss.infinispan.server: Failed to start service
      at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1904)
      at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1135)
      at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
      at java.base/java.lang.Thread.run(Thread.java:844)
      Caused by: org.infinispan.manager.EmbeddedCacheManagerStartupException: org.infinispan.commons.CacheException: Unable to invoke method public void org.infinispan.topology.ClusterTopologyManagerImpl.start() on object of type ClusterTopologyManagerImpl
      at org.infinispan.factories.GlobalComponentRegistry.start(GlobalComponentRegistry.java:249)
      at org.infinispan.manager.DefaultCacheManager.start(DefaultCacheManager.java:663)
      at org.jboss.as.clustering.infinispan.subsystem.CacheContainerBuilder.start(CacheContainerBuilder.java:110)
      at org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1948)
      at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1881)
      ... 3 more
      Caused by: org.infinispan.commons.CacheException: Unable to invoke method public void org.infinispan.topology.ClusterTopologyManagerImpl.start() on object of type ClusterTopologyManagerImpl
      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.GlobalComponentRegistry.start(GlobalComponentRegistry.java:236)
      ... 7 more
      Caused by: java.lang.ExceptionInInitializerError
      at org.jboss.marshalling.river.RiverMarshaller.(RiverMarshaller.java:1233)
      at org.infinispan.commons.marshall.jboss.JBossMarshallerFactory.createMarshaller(JBossMarshallerFactory.java:49)
      at org.infinispan.commons.marshall.jboss.AbstractJBossMarshaller$PerThreadInstanceHolder.getMarshaller(AbstractJBossMarshaller.java:314)
      at org.infinispan.commons.marshall.jboss.AbstractJBossMarshaller.startObjectOutput(AbstractJBossMarshaller.java:90)
      at org.infinispan.marshall.core.VersionAwareMarshaller.startObjectOutput(VersionAwareMarshaller.java:110)
      at org.infinispan.marshall.core.VersionAwareMarshaller.objectToBuffer(VersionAwareMarshaller.java:75)
      at org.infinispan.commons.marshall.AbstractMarshaller.objectToBuffer(AbstractMarshaller.java:41)
      at org.infinispan.commons.marshall.AbstractDelegatingMarshaller.objectToBuffer(AbstractDelegatingMarshaller.java:85)
      at org.infinispan.remoting.transport.jgroups.MarshallerAdapter.objectToBuffer(MarshallerAdapter.java:23)
      at org.infinispan.remoting.transport.jgroups.CommandAwareRpcDispatcher.marshallCall(CommandAwareRpcDispatcher.java:275)
      at org.infinispan.remoting.transport.jgroups.CommandAwareRpcDispatcher.processSingleCall(CommandAwareRpcDispatcher.java:293)
      at org.infinispan.remoting.transport.jgroups.CommandAwareRpcDispatcher.invokeRemoteCommand(CommandAwareRpcDispatcher.java:147)
      at org.infinispan.remoting.transport.jgroups.JGroupsTransport.invokeRemotelyAsync(JGroupsTransport.java:608)
      at org.infinispan.remoting.transport.jgroups.JGroupsTransport.invokeRemotely(JGroupsTransport.java:532)
      at org.infinispan.topology.ClusterTopologyManagerImpl.fetchRebalancingStatusFromCoordinator(ClusterTopologyManagerImpl.java:161)
      at org.infinispan.topology.ClusterTopologyManagerImpl.start(ClusterTopologyManagerImpl.java:146)
      at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
      at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      at java.base/java.lang.reflect.Method.invoke(Method.java:564)
      at org.infinispan.commons.util.ReflectionUtil.invokeAccessibly(ReflectionUtil.java:168)
      ... 12 more
      Caused by: java.lang.IllegalStateException: No standard field found for reverse order comparator!
      at org.jboss.marshalling.river.Protocol.(Protocol.java:220)
      ... 33 more

       

      Below is are Standalone-full-ha.xml configuration for node1, same is present in node2 too.

      Standalone-full-ha.xml-infinispan

       

      <subsystem xmlns="urn:jboss:domain:infinispan:4.0">
                  <cache-container name="server" aliases="singleton cluster" default-cache="default" module="org.wildfly.clustering.server">
                      <transport lock-timeout="60000"/>
                      <replicated-cache name="default" mode="SYNC">
                          <transaction mode="BATCH"/>
                      </replicated-cache>
                  </cache-container>
                  <cache-container name="web" default-cache="dist" module="org.wildfly.clustering.web.infinispan">
                      <transport lock-timeout="60000"/>
                      <distributed-cache name="dist" mode="ASYNC" l1-lifespan="0" owners="2">
                          <locking isolation="REPEATABLE_READ"/>
                          <transaction mode="BATCH"/>
                          <file-store/>
                      </distributed-cache>
                      <distributed-cache name="concurrent" mode="SYNC" l1-lifespan="0" owners="2">
                          <file-store/>
                      </distributed-cache>
                  </cache-container>
                  <cache-container name="ejb" aliases="sfsb" default-cache="dist" module="org.wildfly.clustering.ejb.infinispan">
                      <transport lock-timeout="60000"/>
                      <distributed-cache name="dist" mode="ASYNC" l1-lifespan="0" owners="2">
                          <locking isolation="REPEATABLE_READ"/>
                          <transaction mode="BATCH"/>
                          <file-store/>
                      </distributed-cache>
                  </cache-container>
                  <cache-container name="hibernate" default-cache="local-query" module="org.hibernate.infinispan">
                      <transport lock-timeout="60000"/>
                      <local-cache name="local-query">
                          <eviction strategy="LRU" max-entries="10000"/>
                          <expiration max-idle="100000"/>
                      </local-cache>
                      <invalidation-cache name="entity" mode="SYNC">
                          <transaction mode="NON_XA"/>
                          <eviction strategy="LRU" max-entries="10000"/>
                          <expiration max-idle="100000"/>
                      </invalidation-cache>
                      <replicated-cache name="timestamps" mode="ASYNC"/>
                  </cache-container>
              </subsystem>
      

       

      Standalone-full-ha.xml-activeMQ

       

      <subsystem xmlns="urn:jboss:domain:messaging-activemq:1.0">
                      <server name="default">
                          <cluster password="${jboss.messaging.cluster.password:CHANGE ME!!}"/>
                          <security-setting name="#">
                              <role name="guest" send="true" consume="true" create-non-durable-queue="true" delete-non-durable-queue="true"/>
                          </security-setting>
                          <address-setting name="#" dead-letter-address="jms.queue.DLQ" expiry-address="jms.queue.ExpiryQueue" max-size-bytes="10485760" page-size-bytes="2097152" message-counter-history-day-limit="10" redistribution-delay="1000"/>
                          <http-connector name="http-connector" socket-binding="http" endpoint="http-acceptor"/>
                          <http-connector name="http-connector-throughput" socket-binding="http" endpoint="http-acceptor-throughput">
                              <param name="batch-delay" value="50"/>
                          </http-connector>
                          <in-vm-connector name="in-vm" server-id="0"/>
                          <http-acceptor name="http-acceptor" http-listener="default"/>
                          <http-acceptor name="http-acceptor-throughput" http-listener="default">
                              <param name="batch-delay" value="50"/>
                              <param name="direct-deliver" value="false"/>
                          </http-acceptor>
                          <in-vm-acceptor name="in-vm" server-id="0"/>
                          <broadcast-group name="bg-group1" jgroups-channel="activemq-cluster" connectors="http-connector"/>
                          <discovery-group name="dg-group1" jgroups-channel="activemq-cluster"/>
                          <cluster-connection name="my-cluster" address="jms" connector-name="http-connector" discovery-group="dg-group1"/>
                          <jms-queue name="ExpiryQueue" entries="java:/jms/queue/ExpiryQueue"/>
                          <jms-queue name="DLQ" entries="java:/jms/queue/DLQ"/>
                          <connection-factory name="InVmConnectionFactory" entries="java:/ConnectionFactory" connectors="in-vm"/>
                          <connection-factory name="RemoteConnectionFactory" entries="java:jboss/exported/jms/RemoteConnectionFactory" connectors="http-connector" ha="true" block-on-acknowledge="true" reconnect-attempts="-1"/>
                          <pooled-connection-factory name="activemq-ra" entries="java:/JmsXA java:jboss/DefaultJMSConnectionFactory" connectors="in-vm" transaction="xa"/>
                      </server>
                  </subsystem>