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

Partition merges when using topology hints can cause null pointers and leave the system in an unstable state

    Details

    • Estimated Difficulty:
      Low

      Description

      Due to a missing null check in MergeTask, and the way TopologyInfo instances are dealt with (inconsistently) in DistributionManagerImpl and ConsistentHash implementations.

      In this scenario, seen on the joining node:

      Caused by: java.lang.NullPointerException
      	at org.infinispan.distribution.DistributionManagerImpl.informRehashOnJoin(DistributionManagerImpl.java:475)
      	at org.infinispan.commands.control.RehashControlCommand.perform(RehashControlCommand.java:134)
      	at org.infinispan.remoting.InboundInvocationHandlerImpl.handleInternal(InboundInvocationHandlerImpl.java:145)
      	at org.infinispan.remoting.InboundInvocationHandlerImpl.handleWithWaitForBlocks(InboundInvocationHandlerImpl.java:159)
      	at org.infinispan.remoting.InboundInvocationHandlerImpl.handleWithRetry(InboundInvocationHandlerImpl.java:249)
      	at org.infinispan.remoting.InboundInvocationHandlerImpl.handle(InboundInvocationHandlerImpl.java:131)
      	at org.infinispan.remoting.transport.jgroups.CommandAwareRpcDispatcher.executeCommand(CommandAwareRpcDispatcher.java:159)
      	at org.infinispan.remoting.transport.jgroups.CommandAwareRpcDispatcher.handle(CommandAwareRpcDispatcher.java:144)
      	at org.jgroups.blocks.RequestCorrelator.handleRequest(RequestCorrelator.java:577)
      	at org.jgroups.blocks.RequestCorrelator.receiveMessage(RequestCorrelator.java:488)
      	at org.jgroups.blocks.RequestCorrelator.receive(RequestCorrelator.java:364)
      

      and on the coordinator:

      Caused by: java.lang.NullPointerException
          at org.infinispan.distribution.DistributionManagerImpl.rehash(DistributionManagerImpl.java:283)
          at org.infinispan.distribution.DistributionManagerImpl$ViewChangeListener.handleViewChange(DistributionManagerImpl.java:563) 
          at sun.reflect.GeneratedMethodAccessor482.invoke(Unknown Source)
          at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
          at java.lang.reflect.Method.invoke(Method.java:597)
          at org.infinispan.notifications.AbstractListenerImpl$ListenerInvocation$1.run(AbstractListenerImpl.java:175)
      

        Gliffy Diagrams

          Attachments

            Activity

              People

              • Assignee:
                manik Manik Surtani
                Reporter:
                manik Manik Surtani
              • Votes:
                0 Vote for this issue
                Watchers:
                0 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: