Uploaded image for project: 'Ignite'
  1. Ignite
  2. IGNITE-12322

Changing baseline via set command may cause NPEs if configured NodeFilter takes node attributes into account

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Major
    • Resolution: Duplicate
    • None
    • 2.8
    • None
    • None

    Description

      VisorBaselineTask doesn't allow to add() offline baseline node, but allows to set() collection of nodes where at least one is offline and doesn’t belong to current BLT.
      We should prohibit passing offline nodes to setBaselineTopology(…) (in case they are not part of current BLT): otherwise we won't be able to calculate affinity in case NodeFilter is configured.

      2019-07-16 13:38:01.658 ERROR 16507 --- [exchange-worker-#165] .c.d.d.p.GridDhtPartitionsExchangeFuture : Failed to reinitialize local partitions (rebalancing will be stopped): GridDhtPartitionExchangeId [topVer=AffinityTopologyVersion [topVer=481, minorTopVer=1], discoEvt=DiscoveryEvent [evtNode=TcpDiscoveryNode [id=e53b5aca-9432-4cbe-9626-da480b86d417, addrs=ArrayList [10.12.85.13, 127.0.0.1], sockAddrs=HashSet [lpposput50143.phx.aexp.com/10.12.85.13:47550, /127.0.0.1:47550], discPort=47550, order=288, intOrder=148, lastExchangeTime=1563309481590, loc=true, ver=2.5.7#20190326-sha1:b45b8438, isClient=false], topVer=481, nodeId8=e53b5aca, msg=null, type=DISCOVERY_CUSTOM_EVT, tstamp=1563309481580]DiscoveryCustomEvent [customMsg=ChangeGlobalStateMessage [id=bb76b94db61-f4fff892-04f6-4153-9210-1a19749fec35, reqId=1b5cae87-ad46-4d62-8525-bc1a5015b0d8, initiatingNodeId=e53b5aca-9432-4cbe-9626-da480b86d417, activate=true, baselineTopology=BaselineTopology [id=3, branchingHash=-1403071463, branchingType='New BaselineTopology', baselineNodes=[/dev/shm/ignite/storagepath/lpposput50142.phx.aexp.com, /dev/shm/ignite/storagepath/lpposput50143.phx.aexp.com, /dev/shm/ignite/storagepath/lpposput50133.phx.aexp.com, /dev/shm/ignite/storagepath/lpposput50134.phx.aexp.com, /dev/shm/ignite/storagepath/lpposput50141.phx.aexp.com, /dev/shm/ignite/storagepath/lpposput50140.phx.aexp.com]], forceChangeBaselineTopology=true, timestamp=1563309481551], affTopVer=AffinityTopologyVersion [topVer=481, minorTopVer=1], super=], nodeId=e53b5aca, evt=DISCOVERY_CUSTOM_EVT]
      java.lang.NullPointerException: null
      	at org.apache.ignite.internal.cluster.DetachedClusterNode.attribute(DetachedClusterNode.java:69) ~[ignite-core-2.5.7.jar!/:2.5.7]
      	at com.aexp.rc.ignite.CacheNodeFilter.apply(CacheNodeFilter.java:14) ~[classes!/:0.1.0-SNAPSHOT]
      	at com.aexp.rc.ignite.CacheNodeFilter.apply(CacheNodeFilter.java:6) ~[classes!/:0.1.0-SNAPSHOT]
      	at org.apache.ignite.internal.processors.cache.GridCacheUtils.affinityNode(GridCacheUtils.java:1362) ~[ignite-core-2.5.7.jar!/:2.5.7]
      	at org.apache.ignite.internal.processors.cluster.BaselineTopology.createBaselineView(BaselineTopology.java:331) ~[ignite-core-2.5.7.jar!/:2.5.7]
      	at org.apache.ignite.internal.processors.affinity.GridAffinityAssignmentCache.calculate(GridAffinityAssignmentCache.java:347) ~[ignite-core-2.5.7.jar!/:2.5.7]
      	at org.apache.ignite.internal.processors.cache.CacheAffinitySharedManager$15.applyx(CacheAffinitySharedManager.java:1899) ~[ignite-core-2.5.7.jar!/:2.5.7]
      	at org.apache.ignite.internal.processors.cache.CacheAffinitySharedManager$15.applyx(CacheAffinitySharedManager.java:1895) ~[ignite-core-2.5.7.jar!/:2.5.7]
      	at org.apache.ignite.internal.processors.cache.CacheAffinitySharedManager.lambda$forAllRegisteredCacheGroups$e0a6939d$1(CacheAffinitySharedManager.java:1268) ~[ignite-core-2.5.7.jar!/:2.5.7]
      	at org.apache.ignite.internal.util.IgniteUtils.lambda$null$1(IgniteUtils.java:10529) ~[ignite-core-2.5.7.jar!/:2.5.7]
      	at java.util.concurrent.FutureTask.run(FutureTask.java:266) ~[na:1.8.0_161]
      	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) ~[na:1.8.0_161]
      	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) ~[na:1.8.0_161]
      	at java.lang.Thread.run(Thread.java:748) [na:1.8.0_161]
      	Suppressed: java.lang.NullPointerException: null
      		... 14 common frames omitted
      	Suppressed: java.lang.NullPointerException: null
      		... 14 common frames omitted
      	Suppressed: java.lang.NullPointerException: null
      		... 14 common frames omitted
      	Suppressed: java.lang.NullPointerException: null
      		... 14 common frames omitted
      	Suppressed: java.lang.NullPointerException: null
      		... 14 common frames omitted
      	Suppressed: java.lang.NullPointerException: null
      		at org.apache.ignite.internal.cluster.DetachedClusterNode.attribute(DetachedClusterNode.java:69) ~[ignite-core-2.5.7.jar!/:2.5.7]
      		at com.aexp.rc.ignite.CacheNodeFilter.apply(CacheNodeFilter.java:14) ~[classes!/:0.1.0-SNAPSHOT]
      		at com.aexp.rc.ignite.CacheNodeFilter.apply(CacheNodeFilter.java:6) ~[classes!/:0.1.0-SNAPSHOT]
      		at org.apache.ignite.internal.processors.cache.GridCacheUtils.affinityNode(GridCacheUtils.java:1362) ~[ignite-core-2.5.7.jar!/:2.5.7]
      		at org.apache.ignite.internal.processors.cluster.BaselineTopology.createBaselineView(BaselineTopology.java:331) ~[ignite-core-2.5.7.jar!/:2.5.7]
      		at org.apache.ignite.internal.processors.affinity.GridAffinityAssignmentCache.calculate(GridAffinityAssignmentCache.java:347) ~[ignite-core-2.5.7.jar!/:2.5.7]
      		at org.apache.ignite.internal.processors.cache.CacheAffinitySharedManager$15.applyx(CacheAffinitySharedManager.java:1899) ~[ignite-core-2.5.7.jar!/:2.5.7]
      		at org.apache.ignite.internal.processors.cache.CacheAffinitySharedManager$15.applyx(CacheAffinitySharedManager.java:1895) ~[ignite-core-2.5.7.jar!/:2.5.7]
      		at org.apache.ignite.internal.processors.cache.CacheAffinitySharedManager.lambda$forAllRegisteredCacheGroups$e0a6939d$1(CacheAffinitySharedManager.java:1268) ~[ignite-core-2.5.7.jar!/:2.5.7]
      		at org.apache.ignite.internal.util.IgniteUtils.doInParallel(IgniteUtils.java:10548) ~[ignite-core-2.5.7.jar!/:2.5.7]
      		at org.apache.ignite.internal.util.IgniteUtils.doInParallel(IgniteUtils.java:10471) ~[ignite-core-2.5.7.jar!/:2.5.7]
      		at org.apache.ignite.internal.processors.cache.CacheAffinitySharedManager.forAllRegisteredCacheGroups(CacheAffinitySharedManager.java:1267) ~[ignite-core-2.5.7.jar!/:2.5.7]
      		at org.apache.ignite.internal.processors.cache.CacheAffinitySharedManager.onCentralizedAffinityChange(CacheAffinitySharedManager.java:1895) ~[ignite-core-2.5.7.jar!/:2.5.7]
      		at org.apache.ignite.internal.processors.cache.distributed.dht.preloader.GridDhtPartitionsExchangeFuture.init(GridDhtPartitionsExchangeFuture.java:760) ~[ignite-core-2.5.7.jar!/:2.5.7]
      		at org.apache.ignite.internal.processors.cache.GridCachePartitionExchangeManager$ExchangeWorker.body0(GridCachePartitionExchangeManager.java:2825) [ignite-core-2.5.7.jar!/:2.5.7]
      		at org.apache.ignite.internal.processors.cache.GridCachePartitionExchangeManager$ExchangeWorker.body(GridCachePartitionExchangeManager.java:2682) [ignite-core-2.5.7.jar!/:2.5.7]
      		at org.apache.ignite.internal.util.worker.GridWorker.run(GridWorker.java:110) [ignite-core-2.5.7.jar!/:2.5.7]
      		... 1 common frames omitted
      

      Attachments

        Activity

          People

            alapin Alexander Lapin
            alapin Alexander Lapin
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: