summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSiddharth Wagle <swagle@hortonworks.com>2017-08-09 15:45:34 -0700
committerSiddharth Wagle <swagle@hortonworks.com>2017-08-09 15:45:46 -0700
commit8aa5e2c61dbb7eb16243f1ea627d8713d5ff0447 (patch)
tree7209e014d5fc8279c36382a02e84ee9b32bc45b1
parent2bfc582037d23a6d573f102cfecc3f0c77d31bb5 (diff)
AMBARI-21695. Problem in starting accumulo in upgraded cluster (IOP-HDP). (swagle)
-rw-r--r--ambari-server/src/main/java/org/apache/ambari/server/metadata/CachedRoleCommandOrderProvider.java9
-rw-r--r--ambari-server/src/main/java/org/apache/ambari/server/serveraction/upgrades/FinalizeUpgradeAction.java17
-rw-r--r--ambari-server/src/main/resources/scripts/configs.py2
3 files changed, 26 insertions, 2 deletions
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/metadata/CachedRoleCommandOrderProvider.java b/ambari-server/src/main/java/org/apache/ambari/server/metadata/CachedRoleCommandOrderProvider.java
index 49abc66142..ec03246e51 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/metadata/CachedRoleCommandOrderProvider.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/metadata/CachedRoleCommandOrderProvider.java
@@ -21,6 +21,7 @@ package org.apache.ambari.server.metadata;
import java.util.HashMap;
import java.util.LinkedHashSet;
import java.util.Map;
+import java.util.concurrent.ConcurrentHashMap;
import org.apache.ambari.server.AmbariException;
import org.apache.ambari.server.state.Cluster;
@@ -46,7 +47,7 @@ public class CachedRoleCommandOrderProvider implements RoleCommandOrderProvider
@Inject
private Clusters clusters;
- private Map<Integer, RoleCommandOrder> rcoMap = new HashMap<>();
+ private Map<Integer, RoleCommandOrder> rcoMap = new ConcurrentHashMap<>();
@Inject
public CachedRoleCommandOrderProvider() {
@@ -124,4 +125,10 @@ public class CachedRoleCommandOrderProvider implements RoleCommandOrderProvider
return rco;
}
+ /**
+ * Clear all entries - used after an upgrade
+ */
+ public void clearRoleCommandOrderCache() {
+ rcoMap.clear();
+ }
}
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/serveraction/upgrades/FinalizeUpgradeAction.java b/ambari-server/src/main/java/org/apache/ambari/server/serveraction/upgrades/FinalizeUpgradeAction.java
index d531460575..b6cdf23447 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/serveraction/upgrades/FinalizeUpgradeAction.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/serveraction/upgrades/FinalizeUpgradeAction.java
@@ -34,6 +34,8 @@ import org.apache.ambari.server.agent.ExecutionCommand.KeyNames;
import org.apache.ambari.server.api.services.AmbariMetaInfo;
import org.apache.ambari.server.events.StackUpgradeFinishEvent;
import org.apache.ambari.server.events.publishers.VersionEventPublisher;
+import org.apache.ambari.server.metadata.CachedRoleCommandOrderProvider;
+import org.apache.ambari.server.metadata.RoleCommandOrderProvider;
import org.apache.ambari.server.orm.dao.ClusterVersionDAO;
import org.apache.ambari.server.orm.dao.HostComponentStateDAO;
import org.apache.ambari.server.orm.dao.HostVersionDAO;
@@ -113,6 +115,9 @@ public class FinalizeUpgradeAction extends AbstractServerAction {
@Inject
VersionEventPublisher versionEventPublisher;
+ @Inject
+ private RoleCommandOrderProvider roleCommandOrderProvider;
+
/**
* Used for building {@link UpgradeContext} instances.
*/
@@ -309,6 +314,12 @@ public class FinalizeUpgradeAction extends AbstractServerAction {
outSB.append("Upgrade was successful!\n");
+ // Clear any cached RCO data after version upgrade
+ if (roleCommandOrderProvider instanceof CachedRoleCommandOrderProvider) {
+ CachedRoleCommandOrderProvider cachedRcoProvider = (CachedRoleCommandOrderProvider) roleCommandOrderProvider;
+ cachedRcoProvider.clearRoleCommandOrderCache();
+ }
+
return createCommandReport(0, HostRoleStatus.COMPLETED, "{}", outSB.toString(), errSB.toString());
} catch (Exception e) {
errSB.append(e.getMessage());
@@ -442,6 +453,12 @@ public class FinalizeUpgradeAction extends AbstractServerAction {
// Reset upgrade state
cluster.setUpgradeEntity(null);
+ // Clear any cached RCO data after version downgrade
+ if (roleCommandOrderProvider instanceof CachedRoleCommandOrderProvider) {
+ CachedRoleCommandOrderProvider cachedRcoProvider = (CachedRoleCommandOrderProvider) roleCommandOrderProvider;
+ cachedRcoProvider.clearRoleCommandOrderCache();
+ }
+
return createCommandReport(0, HostRoleStatus.COMPLETED, "{}",
out.toString(), err.toString());
diff --git a/ambari-server/src/main/resources/scripts/configs.py b/ambari-server/src/main/resources/scripts/configs.py
index 40a8324b7c..639f28ed42 100644
--- a/ambari-server/src/main/resources/scripts/configs.py
+++ b/ambari-server/src/main/resources/scripts/configs.py
@@ -30,7 +30,7 @@ import xml.etree.ElementTree as ET
import os
import logging
-logger = logging.getLogger('AmbariTakeoverConfigMerge')
+logger = logging.getLogger('AmbariConfig')
HTTP_PROTOCOL = 'http'
HTTPS_PROTOCOL = 'https'