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} */