You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@asterixdb.apache.org by mb...@apache.org on 2018/02/05 21:57:15 UTC

asterixdb git commit: [NO ISSUE] Trace AsterixHyracksIntegrationUtil to console; fix NC effective map precedence

Repository: asterixdb
Updated Branches:
  refs/heads/master d753479fe -> 1a936956d


[NO ISSUE] Trace AsterixHyracksIntegrationUtil to console; fix NC effective map precedence

Change-Id: Ied091c2ab17f631df84eab40143180b3a9be09ed
Reviewed-on: https://asterix-gerrit.ics.uci.edu/2363
Tested-by: Jenkins <je...@fulliautomatix.ics.uci.edu>
Reviewed-by: Murtadha Hubail <mh...@apache.org>


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

Branch: refs/heads/master
Commit: 1a936956d08177675b6928ef8bca33042a1b186c
Parents: d753479
Author: Michael Blow <mb...@apache.org>
Authored: Mon Feb 5 13:40:30 2018 -0500
Committer: Michael Blow <mb...@apache.org>
Committed: Mon Feb 5 13:56:55 2018 -0800

----------------------------------------------------------------------
 .../common/AsterixHyracksIntegrationUtil.java   |  9 ++++---
 .../control/common/config/ConfigManager.java    | 15 +++++------
 .../apache/hyracks/test/support/TestUtils.java  | 28 ++++++++++++++++++++
 3 files changed, 41 insertions(+), 11 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/asterixdb/blob/1a936956/asterixdb/asterix-app/src/test/java/org/apache/asterix/api/common/AsterixHyracksIntegrationUtil.java
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/java/org/apache/asterix/api/common/AsterixHyracksIntegrationUtil.java b/asterixdb/asterix-app/src/test/java/org/apache/asterix/api/common/AsterixHyracksIntegrationUtil.java
index ae82ea7..ee96d00 100644
--- a/asterixdb/asterix-app/src/test/java/org/apache/asterix/api/common/AsterixHyracksIntegrationUtil.java
+++ b/asterixdb/asterix-app/src/test/java/org/apache/asterix/api/common/AsterixHyracksIntegrationUtil.java
@@ -55,6 +55,7 @@ import org.apache.hyracks.control.common.controllers.CCConfig;
 import org.apache.hyracks.control.common.controllers.ControllerConfig;
 import org.apache.hyracks.control.common.controllers.NCConfig;
 import org.apache.hyracks.control.nc.NodeControllerService;
+import org.apache.hyracks.test.support.TestUtils;
 import org.apache.logging.log4j.Level;
 import org.apache.logging.log4j.LogManager;
 import org.apache.logging.log4j.Logger;
@@ -97,12 +98,13 @@ public class AsterixHyracksIntegrationUtil {
      * @param args unused
      */
     public static void main(String[] args) throws Exception {
+        TestUtils.redirectLoggingToConsole();
         AsterixHyracksIntegrationUtil integrationUtil = new AsterixHyracksIntegrationUtil();
         try {
             integrationUtil.run(Boolean.getBoolean("cleanup.start"), Boolean.getBoolean("cleanup.shutdown"),
                     System.getProperty("external.lib", ""), System.getProperty("conf.path", DEFAULT_CONF_FILE));
         } catch (Exception e) {
-            LOGGER.log(Level.WARN, "Unexpected exception", e);
+            LOGGER.fatal("Unexpected exception", e);
             System.exit(1);
         }
     }
@@ -125,7 +127,7 @@ public class AsterixHyracksIntegrationUtil {
         }
         final List<NodeControllerService> nodeControllers = new ArrayList<>();
         for (String nodeId : nodeNames) {
-            // mark this NC as virtual in the CC's config manager, so he doesn't try to contact NCService...
+            // mark this NC as virtual, so that the CC doesn't try to start via NCService...
             configManager.set(nodeId, NCConfig.Option.NCSERVICE_PORT, NCConfig.NCSERVICE_PORT_DISABLED);
             final INCApplication ncApplication = createNCApplication();
             ConfigManager ncConfigManager;
@@ -363,7 +365,8 @@ public class AsterixHyracksIntegrationUtil {
     private static Path getProjectPath() {
         final String targetDir = "asterix-app";
         final BiPredicate<Path, BasicFileAttributes> matcher =
-                (path, attributes) -> path.getFileName().toString().equals(targetDir) && path.toFile().isDirectory();
+                (path, attributes) -> path.getFileName().toString().equals(targetDir) && path.toFile().isDirectory()
+                        && path.toFile().list((d, n) -> n.equals("pom.xml")).length == 1;
         final Path currentPath = Paths.get(System.getProperty("user.dir"));
         try (Stream<Path> pathStream = Files.find(currentPath, 10, matcher)) {
             return pathStream.findFirst().orElse(currentPath);

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/1a936956/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-common/src/main/java/org/apache/hyracks/control/common/config/ConfigManager.java
----------------------------------------------------------------------
diff --git a/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-common/src/main/java/org/apache/hyracks/control/common/config/ConfigManager.java b/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-common/src/main/java/org/apache/hyracks/control/common/config/ConfigManager.java
index fd8c116..baff800 100644
--- a/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-common/src/main/java/org/apache/hyracks/control/common/config/ConfigManager.java
+++ b/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-common/src/main/java/org/apache/hyracks/control/common/config/ConfigManager.java
@@ -454,12 +454,10 @@ public class ConfigManager implements IConfigManager, Serializable {
 
     private Map<IOption, Object> getNodeEffectiveMap(String nodeId) {
         ensureNode(nodeId);
-        CompositeMap<IOption, Object> nodeEffectiveMap = new CompositeMap<>();
-        nodeEffectiveMap.setMutator(new NoOpMapMutator());
-        nodeEffectiveMap.addComposited(nodeSpecificDefinedMap.get(nodeId));
-        nodeEffectiveMap.addComposited(nodeSpecificDefaultMap.get(nodeId));
-        nodeEffectiveMap.addComposited(definedMap);
-        return nodeEffectiveMap;
+        return new CompositeMap<>(
+                Stream.of(nodeSpecificDefinedMap.get(nodeId), nodeSpecificDefaultMap.get(nodeId), definedMap)
+                        .toArray(Map[]::new),
+                new NoOpMapMutator());
     }
 
     public Ini toIni(boolean includeDefaults) {
@@ -570,8 +568,9 @@ public class ConfigManager implements IConfigManager, Serializable {
         }
 
         @Override
-        public void resolveCollision(CompositeMap<IOption, Object> compositeMap, Map<IOption, Object> map,
-                Map<IOption, Object> map1, Collection<IOption> collection) {
+        public void resolveCollision(CompositeMap<IOption, Object> composite, Map<IOption, Object> existing,
+                Map<IOption, Object> added, Collection<IOption> intersect) {
+            LOGGER.debug("resolveCollision: {}, {}, {}, {}", composite, existing, added, intersect);
             // no-op
         }
     }

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/1a936956/hyracks-fullstack/hyracks/hyracks-test-support/src/main/java/org/apache/hyracks/test/support/TestUtils.java
----------------------------------------------------------------------
diff --git a/hyracks-fullstack/hyracks/hyracks-test-support/src/main/java/org/apache/hyracks/test/support/TestUtils.java b/hyracks-fullstack/hyracks/hyracks-test-support/src/main/java/org/apache/hyracks/test/support/TestUtils.java
index 1814e85..d7578af 100644
--- a/hyracks-fullstack/hyracks/hyracks-test-support/src/main/java/org/apache/hyracks/test/support/TestUtils.java
+++ b/hyracks-fullstack/hyracks/hyracks-test-support/src/main/java/org/apache/hyracks/test/support/TestUtils.java
@@ -25,6 +25,7 @@ import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
+import java.util.Optional;
 import java.util.concurrent.Executors;
 
 import org.apache.hyracks.api.application.INCServiceContext;
@@ -41,6 +42,10 @@ import org.apache.hyracks.api.io.IODeviceHandle;
 import org.apache.hyracks.api.job.JobId;
 import org.apache.hyracks.control.nc.io.DefaultDeviceResolver;
 import org.apache.hyracks.control.nc.io.IOManager;
+import org.apache.logging.log4j.core.Appender;
+import org.apache.logging.log4j.core.LoggerContext;
+import org.apache.logging.log4j.core.appender.ConsoleAppender;
+import org.apache.logging.log4j.core.config.Configuration;
 
 public class TestUtils {
     public static IHyracksTaskContext create(int frameSize) {
@@ -140,4 +145,27 @@ public class TestUtils {
         }
         return ncNameToNcInfos;
     }
+
+    public static void redirectLoggingToConsole() {
+        final LoggerContext context = LoggerContext.getContext(false);
+        final Configuration config = context.getConfiguration();
+
+        Appender appender = config.getAppender("Console");
+        if (appender == null) {
+            Optional<Appender> result =
+                    config.getAppenders().values().stream().filter(a -> a instanceof ConsoleAppender).findFirst();
+            if (!result.isPresent()) {
+                System.err.println(
+                        "ERROR: cannot find appender named 'Console'; unable to find alternate ConsoleAppender!");
+            } else {
+                appender = result.get();
+                System.err.println("ERROR: cannot find appender named 'Console'; using alternate ConsoleAppender named "
+                        + appender.getName());
+            }
+        }
+        if (appender != null) {
+            config.getRootLogger().addAppender(appender, null, null);
+            context.updateLoggers();
+        }
+    }
 }