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)