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)

Reply via email to