Alexander Lapin created IGNITE-12322: ----------------------------------------
Summary: Changing baseline via set command may cause NPEs if configured NodeFilter takes node attributes into account Key: IGNITE-12322 URL: https://issues.apache.org/jira/browse/IGNITE-12322 Project: Ignite Issue Type: Bug Reporter: Alexander Lapin Fix For: 2.8 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. {code:java} 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 {code} -- This message was sent by Atlassian Jira (v8.3.4#803005)