AMBARI-22062. Stack selection page does not load the HDP stacks (Redux) (ncole)


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

Branch: refs/heads/branch-3.0-ams
Commit: dc419b4a3940d514d714b27c06e641e69b586760
Parents: cb27cee
Author: Nate Cole <nc...@hortonworks.com>
Authored: Tue Sep 26 15:19:57 2017 -0400
Committer: Nate Cole <nc...@hortonworks.com>
Committed: Tue Sep 26 15:20:02 2017 -0400

----------------------------------------------------------------------
 .../ambari/server/api/services/AmbariMetaInfo.java   |  2 +-
 .../org/apache/ambari/server/stack/StackContext.java | 15 ++++++++++++---
 2 files changed, 13 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ambari/blob/dc419b4a/ambari-server/src/main/java/org/apache/ambari/server/api/services/AmbariMetaInfo.java
----------------------------------------------------------------------
diff --git 
a/ambari-server/src/main/java/org/apache/ambari/server/api/services/AmbariMetaInfo.java
 
b/ambari-server/src/main/java/org/apache/ambari/server/api/services/AmbariMetaInfo.java
index aad35a9..de84965 100644
--- 
a/ambari-server/src/main/java/org/apache/ambari/server/api/services/AmbariMetaInfo.java
+++ 
b/ambari-server/src/main/java/org/apache/ambari/server/api/services/AmbariMetaInfo.java
@@ -1348,7 +1348,7 @@ public class AmbariMetaInfo {
   /**
    * Ensures that the map of version definition files is populated
    */
-  private void ensureVersionDefinitions() {
+  private synchronized void ensureVersionDefinitions() {
     if (null != versionDefinitions) {
       return;
     }

http://git-wip-us.apache.org/repos/asf/ambari/blob/dc419b4a/ambari-server/src/main/java/org/apache/ambari/server/stack/StackContext.java
----------------------------------------------------------------------
diff --git 
a/ambari-server/src/main/java/org/apache/ambari/server/stack/StackContext.java 
b/ambari-server/src/main/java/org/apache/ambari/server/stack/StackContext.java
index d430bb7..2992027 100644
--- 
a/ambari-server/src/main/java/org/apache/ambari/server/stack/StackContext.java
+++ 
b/ambari-server/src/main/java/org/apache/ambari/server/stack/StackContext.java
@@ -61,7 +61,7 @@ public class StackContext {
   private LatestRepoQueryExecutor repoUpdateExecutor;
 
   private final static Logger LOG = 
LoggerFactory.getLogger(StackContext.class);
-  private static final int THREAD_COUNT = 5;
+  private static final int THREAD_COUNT = 10;
 
 
   /**
@@ -167,7 +167,7 @@ public class StackContext {
      */
     public void execute() {
 
-      long l = System.nanoTime();
+      long currentTime = System.nanoTime();
       List<Future<Map<StackModule, RepoUrlInfoResult>>> results = new 
ArrayList<>();
 
       // !!! first, load the *_urlinfo.json files and block for completion
@@ -177,7 +177,7 @@ public class StackContext {
         LOG.warn("Could not load urlinfo as the executor was interrupted", e);
         return;
       } finally {
-        LOG.info("Loaded urlinfo in " + 
TimeUnit.NANOSECONDS.toMillis(System.nanoTime() - l) + "ms");
+        LOG.info("Loaded urlinfo in " + 
TimeUnit.NANOSECONDS.toMillis(System.nanoTime() - currentTime) + "ms");
       }
 
       List<Map<StackModule, RepoUrlInfoResult>> urlInfoResults = new 
ArrayList<>();
@@ -190,6 +190,7 @@ public class StackContext {
         }
       }
 
+      currentTime = System.nanoTime();
       for (Map<StackModule, RepoUrlInfoResult> urlInfoResult : urlInfoResults) 
{
         for (Entry<StackModule, RepoUrlInfoResult> entry : 
urlInfoResult.entrySet()) {
           StackModule stackModule = entry.getKey();
@@ -212,6 +213,14 @@ public class StackContext {
       }
 
       executor.shutdown();
+
+      try {
+        executor.awaitTermination(2,  TimeUnit.MINUTES);
+      } catch (InterruptedException e) {
+        LOG.warn("Loading all VDF was interrupted", e.getCause());
+      } finally {
+        LOG.info("Loaded all VDF in " + 
TimeUnit.NANOSECONDS.toMillis(System.nanoTime() - currentTime) + "ms");
+      }
     }
 
     /**

Reply via email to