Uploaded image for project: 'Infinispan'
  1. Infinispan
  2. ISPN-3395

ISPN000196: Failed to recover cluster state after the current node became the coordinator

    XMLWordPrintable

Details

    Description

      We are using infinispan 5.3.0.Final in our distributed application. we are testing infinispan in HA scenarios and getting following exception when new node becomes co-ordinator.

      ISPN000196: Failed to recover cluster state after the current node became the coordinator

      java.lang.NullPointerException: null
      at org.infinispan.topology.ClusterTopologyManagerImpl.recoverClusterStatus(ClusterTopologyManagerImpl.java:455) ~[infinispan-core-5.3.0.1.Final.jar:5.3.0.1.Final]
      at org.infinispan.topology.ClusterTopologyManagerImpl.handleNewView(ClusterTopologyManagerImpl.java:235) ~[infinispan-core-5.3.0.1.Final.jar:5.3.0.1.Final]
      at org.infinispan.topology.ClusterTopologyManagerImpl$ClusterViewListener$1.run(ClusterTopologyManagerImpl.java:647) ~[infinispan-core-5.3.0.1.Final.jar:5.3.0.1.Final]
      at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) ~[na:1.6.0_25]
      at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source) ~[na:1.6.0_25]
      at java.util.concurrent.FutureTask.run(Unknown Source) [na:1.6.0_25]
      at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source) [na:1.6.0_25]
      at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) [na:1.6.0_25]
      at java.lang.Thread.run(Unknown Source) [na:1.6.0_25]

      This is happening because cacheTopology is null at ClusterTopologyManagerImpl.java:455

      at 449: code is checking cacheTopology for null that for loop which is updating cacheStatusMap at 457 should be in that check itself.

      Fix:
      — a/core/src/main/java/org/infinispan/topology/ClusterTopologyManagerImpl.java
      +++ b/core/src/main/java/org/infinispan/topology/ClusterTopologyManagerImpl.java
      @@ -448,7 +448,7 @@ public class ClusterTopologyManagerImpl implements ClusterTopologyManager {
      // but didn't get a response back yet
      if (cacheTopology != null)

      { topologyList.add(cacheTopology); - }

      +

      // Add all the members of the topology that have sent responses first
      // If we only added the sender, we could end up with a different member order
      @@ -457,6 +457,7 @@ public class ClusterTopologyManagerImpl implements ClusterTopologyManager

      { cacheStatusMap.get(cacheName).addMember(member); }

      }
      + }

      Attachments

        Issue Links

          Activity

            People

              Unassigned Unassigned
              mayankag_jira Mayank Agarwal (Inactive)
              Votes:
              2 Vote for this issue
              Watchers:
              5 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: