You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by se...@apache.org on 2020/12/03 07:59:06 UTC
[ignite] branch master updated: IGNITE-13742 INACTIVE mode is
forced on nodes in Maintenance Mode - Fixes #8524.
This is an automated email from the ASF dual-hosted git repository.
sergeychugunov pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/ignite.git
The following commit(s) were added to refs/heads/master by this push:
new 50f43b4 IGNITE-13742 INACTIVE mode is forced on nodes in Maintenance Mode - Fixes #8524.
50f43b4 is described below
commit 50f43b48572ebd2cfd49578e425524bbd71f8a71
Author: ibessonov <be...@gmail.com>
AuthorDate: Thu Dec 3 10:54:13 2020 +0300
IGNITE-13742 INACTIVE mode is forced on nodes in Maintenance Mode - Fixes #8524.
Signed-off-by: Sergey Chugunov <se...@gmail.com>
---
.../java/org/apache/ignite/internal/IgniteKernal.java | 17 ++++++++++++++++-
.../processors/cluster/GridClusterStateProcessor.java | 6 ++++++
2 files changed, 22 insertions(+), 1 deletion(-)
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/IgniteKernal.java b/modules/core/src/main/java/org/apache/ignite/internal/IgniteKernal.java
index 588ae7d..1bb3e6c 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/IgniteKernal.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/IgniteKernal.java
@@ -1195,7 +1195,7 @@ public class IgniteKernal implements IgniteEx, IgniteMXBean, Externalizable {
// Assign discovery manager to context before other processors start so they
// are able to register custom event listener.
- GridManager discoMgr = new GridDiscoveryManager(ctx);
+ GridDiscoveryManager discoMgr = new GridDiscoveryManager(ctx);
ctx.add(discoMgr, false);
@@ -1210,10 +1210,25 @@ public class IgniteKernal implements IgniteEx, IgniteMXBean, Externalizable {
startProcessor(mntcProcessor);
if (mntcProcessor.isMaintenanceMode()) {
+ if (log.isInfoEnabled()) {
+ log.info(
+ "Node is being started in maintenance mode. " +
+ "Starting IsolatedDiscoverySpi instead of configured discovery SPI."
+ );
+ }
+
+ cfg.setClusterStateOnStart(ClusterState.INACTIVE);
+
+ if (log.isInfoEnabled())
+ log.info("Overriding 'clusterStateOnStart' configuration to 'INACTIVE'.");
+
ctx.config().setDiscoverySpi(new IsolatedDiscoverySpi());
discoMgr = new GridDiscoveryManager(ctx);
+ // Reinitialized discovery manager won't have a valid consistentId on creation.
+ discoMgr.consistentId(ctx.pdsFolderResolver().resolveFolders().consistentId());
+
ctx.add(discoMgr, false);
}
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 faacc71..01ded97 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
@@ -1049,6 +1049,12 @@ public class GridClusterStateProcessor extends GridProcessorAdapter implements I
boolean forceChangeBaselineTopology,
boolean isAutoAdjust
) {
+ if (ctx.maintenanceRegistry().isMaintenanceMode()) {
+ return new GridFinishedFuture<>(
+ new IgniteCheckedException("Failed to " + prettyStr(state) + " (node is in maintenance mode).")
+ );
+ }
+
BaselineTopology blt = (compatibilityMode && !forceChangeBaselineTopology) ?
null :
calculateNewBaselineTopology(state, baselineNodes, forceChangeBaselineTopology);