瀏覽代碼

HADOOP-15731. TestDistributedShell fails on Windows. Contributed by Botong Huang.

Giovanni Matteo Fumarola 6 年之前
父節點
當前提交
d9d74cd793

+ 3 - 1
hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-applications-distributedshell/src/main/java/org/apache/hadoop/yarn/applications/distributedshell/Client.java

@@ -690,7 +690,9 @@ public class Client {
 
     // Set java executable command 
     LOG.info("Setting up app master command");
-    vargs.add(Environment.JAVA_HOME.$$() + "/bin/java");
+    // Need extra quote here because JAVA_HOME might contain space on Windows,
+    // e.g. C:/Program Files/Java...
+    vargs.add("\"" + Environment.JAVA_HOME.$$() + "/bin/java\"");
     // Set Xmx based on am memory size
     vargs.add("-Xmx" + amMemory + "m");
     // Set class name 

+ 9 - 3
hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-applications-distributedshell/src/test/java/org/apache/hadoop/yarn/applications/distributedshell/TestDistributedShell.java

@@ -748,6 +748,12 @@ public class TestDistributedShell {
 
   }
 
+  private String getSleepCommand(int sec) {
+    // Windows doesn't have a sleep command, ping -n does the trick
+    return Shell.WINDOWS ? "ping -n " + (sec + 1) + " 127.0.0.1 >nul"
+        : "sleep " + sec;
+  }
+
   @Test
   public void testDSRestartWithPreviousRunningContainers() throws Exception {
     String[] args = {
@@ -756,7 +762,7 @@ public class TestDistributedShell {
         "--num_containers",
         "1",
         "--shell_command",
-        "sleep 8",
+        getSleepCommand(8),
         "--master_memory",
         "512",
         "--container_memory",
@@ -791,7 +797,7 @@ public class TestDistributedShell {
         "--num_containers",
         "1",
         "--shell_command",
-        "sleep 8",
+        getSleepCommand(8),
         "--master_memory",
         "512",
         "--container_memory",
@@ -829,7 +835,7 @@ public class TestDistributedShell {
         "--num_containers",
         "1",
         "--shell_command",
-        "sleep 8",
+        getSleepCommand(8),
         "--master_memory",
         "512",
         "--container_memory",