[jira] [Created] (IGNITE-12322) Changing baseline via set command may cause NPEs if configured NodeFilter takes node attributes into account

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

[jira] [Created] (IGNITE-12322) Changing baseline via set command may cause NPEs if configured NodeFilter takes node attributes into account

Anton Vinogradov (Jira)
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)