You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by ag...@apache.org on 2018/03/26 11:57:39 UTC

ignite git commit: ignite-8004 move setting compatibilityMode to head of collectGridNodeData - Fixes #3665.

Repository: ignite
Updated Branches:
  refs/heads/master ff0b232dc -> df8c823a6


ignite-8004 move setting compatibilityMode to head of collectGridNodeData - Fixes #3665.

Signed-off-by: Alexey Goncharuk <al...@gmail.com>


Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/df8c823a
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/df8c823a
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/df8c823a

Branch: refs/heads/master
Commit: df8c823a6211ebb626257f00ee31bbdc69bee40d
Parents: ff0b232
Author: Anton Kalashnikov <ka...@yandex.ru>
Authored: Mon Mar 26 14:57:11 2018 +0300
Committer: Alexey Goncharuk <al...@gmail.com>
Committed: Mon Mar 26 14:57:11 2018 +0300

----------------------------------------------------------------------
 .../cluster/GridClusterStateProcessor.java      | 64 +++++++++++---------
 1 file changed, 34 insertions(+), 30 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/df8c823a/modules/core/src/main/java/org/apache/ignite/internal/processors/cluster/GridClusterStateProcessor.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cluster/GridClusterStateProcessor.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cluster/GridClusterStateProcessor.java
index 3ed4e07..81a5b4e 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cluster/GridClusterStateProcessor.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cluster/GridClusterStateProcessor.java
@@ -639,46 +639,50 @@ public class GridClusterStateProcessor extends GridProcessorAdapter implements I
 
     /** {@inheritDoc} */
     @Override public void collectGridNodeData(DiscoveryDataBag dataBag) {
-        if (!dataBag.commonDataCollectedFor(STATE_PROC.ordinal())) {
-            DiscoveryDataBag.JoiningNodeDiscoveryData joiningNodeData = dataBag.newJoinerDiscoveryData(STATE_PROC.ordinal());
+        DiscoveryDataBag.JoiningNodeDiscoveryData joiningNodeData = dataBag.newJoinerDiscoveryData(STATE_PROC.ordinal());
 
-            BaselineTopologyHistory historyToSend = null;
+        if (joiningNodeData != null && !joiningNodeData.hasJoiningNodeData())
+            compatibilityMode = true; //compatibility mode: only old nodes don't send any data on join
 
-            if (joiningNodeData != null) {
-                if (!joiningNodeData.hasJoiningNodeData() || compatibilityMode) {
-                    //compatibility mode: old nodes don't send any data on join, so coordinator of new version
-                    //doesn't send BaselineTopology history, only its current globalState
-                    dataBag.addGridCommonData(STATE_PROC.ordinal(), globalState);
+        if (dataBag.commonDataCollectedFor(STATE_PROC.ordinal()) || joiningNodeData == null)
+            return;
 
-                    return;
-                }
+        if (!joiningNodeData.hasJoiningNodeData() || compatibilityMode) {
+            //compatibility mode: old nodes don't send any data on join, so coordinator of new version
+            //doesn't send BaselineTopology history, only its current globalState
+            dataBag.addGridCommonData(STATE_PROC.ordinal(), globalState);
 
-                DiscoveryDataClusterState joiningNodeState = null;
+            return;
+        }
 
-                try {
-                    if (joiningNodeData.joiningNodeData() != null)
-                        joiningNodeState = marsh.unmarshal(
-                            (byte[]) joiningNodeData.joiningNodeData(),
-                            U.resolveClassLoader(ctx.config()));
-                } catch (IgniteCheckedException e) {
-                    U.error(log, "Failed to unmarshal disco data from joining node: " + joiningNodeData.joiningNodeId());
-
-                    return;
-                }
+        DiscoveryDataClusterState joiningNodeState = null;
+
+        try {
+            if (joiningNodeData.joiningNodeData() != null)
+                joiningNodeState = marsh.unmarshal(
+                    (byte[])joiningNodeData.joiningNodeData(),
+                    U.resolveClassLoader(ctx.config())
+                );
+        }
+        catch (IgniteCheckedException e) {
+            U.error(log, "Failed to unmarshal disco data from joining node: " + joiningNodeData.joiningNodeId());
 
-                if (!bltHist.isEmpty()) {
-                    if (joiningNodeState != null && joiningNodeState.baselineTopology() != null) {
-                        int lastId = joiningNodeState.baselineTopology().id();
+            return;
+        }
 
-                        historyToSend = bltHist.tailFrom(lastId);
-                    }
-                    else
-                        historyToSend = bltHist;
-                }
+        BaselineTopologyHistory historyToSend = null;
 
-                dataBag.addGridCommonData(STATE_PROC.ordinal(), new BaselineStateAndHistoryData(globalState, historyToSend));
+        if (!bltHist.isEmpty()) {
+            if (joiningNodeState != null && joiningNodeState.baselineTopology() != null) {
+                int lastId = joiningNodeState.baselineTopology().id();
+
+                historyToSend = bltHist.tailFrom(lastId);
             }
+            else
+                historyToSend = bltHist;
         }
+
+        dataBag.addGridCommonData(STATE_PROC.ordinal(), new BaselineStateAndHistoryData(globalState, historyToSend));
     }
 
     /** {@inheritDoc} */