AMBARI-21695. Problem in starting accumulo in upgraded cluster (IOP-HDP). 
(swagle)


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

Branch: refs/heads/branch-feature-logsearch-ui
Commit: 3136abed153856c1672e502d71a407abe211828f
Parents: 108ad9b
Author: Siddharth Wagle <swa...@hortonworks.com>
Authored: Wed Aug 9 15:49:15 2017 -0700
Committer: Siddharth Wagle <swa...@hortonworks.com>
Committed: Wed Aug 9 15:49:15 2017 -0700

----------------------------------------------------------------------
 .../metadata/CachedRoleCommandOrderProvider.java   |  9 ++++++++-
 .../upgrades/FinalizeUpgradeAction.java            | 17 +++++++++++++++++
 2 files changed, 25 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ambari/blob/3136abed/ambari-server/src/main/java/org/apache/ambari/server/metadata/CachedRoleCommandOrderProvider.java
----------------------------------------------------------------------
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 c6315a7..0a5d301 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();
+  }
 }

http://git-wip-us.apache.org/repos/asf/ambari/blob/3136abed/ambari-server/src/main/java/org/apache/ambari/server/serveraction/upgrades/FinalizeUpgradeAction.java
----------------------------------------------------------------------
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 9d70546..8471d7b 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
@@ -35,6 +35,8 @@ import org.apache.ambari.server.agent.CommandReport;
 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.HostComponentStateDAO;
 import org.apache.ambari.server.orm.dao.HostVersionDAO;
 import org.apache.ambari.server.orm.entities.HostComponentStateEntity;
@@ -93,6 +95,9 @@ public class FinalizeUpgradeAction extends 
AbstractUpgradeServerAction {
     }
   }
 
+  @Inject
+  private RoleCommandOrderProvider roleCommandOrderProvider;
+
   /**
    * Execution path for upgrade.
    * @return the command report
@@ -197,6 +202,12 @@ public class FinalizeUpgradeAction extends 
AbstractUpgradeServerAction {
       // Reset upgrade state
       cluster.setUpgradeEntity(null);
 
+      // Clear any cached RCO data after version upgrade
+      if (roleCommandOrderProvider instanceof CachedRoleCommandOrderProvider) {
+        CachedRoleCommandOrderProvider cachedRcoProvider = 
(CachedRoleCommandOrderProvider) roleCommandOrderProvider;
+        cachedRcoProvider.clearRoleCommandOrderCache();
+      }
+
       // the upgrade is done!
       versionEventPublisher.publish(new StackUpgradeFinishEvent(cluster));
 
@@ -319,6 +330,12 @@ public class FinalizeUpgradeAction extends 
AbstractUpgradeServerAction {
       // Reset upgrade state
       cluster.setUpgradeEntity(null);
 
+      // Clear any cached RCO data after version upgrade
+      if (roleCommandOrderProvider instanceof CachedRoleCommandOrderProvider) {
+        CachedRoleCommandOrderProvider cachedRcoProvider = 
(CachedRoleCommandOrderProvider) roleCommandOrderProvider;
+        cachedRcoProvider.clearRoleCommandOrderCache();
+      }
+
       message = String.format("The downgrade from %s has completed.", 
downgradeFromVersion);
       outSB.append(message).append(System.lineSeparator());
 

Reply via email to