YARN-1077. Fixed TestContainerLaunch test failure on Windows. Contributed by Chuan Liu.
git-svn-id: https://svn.apache.org/repos/asf/hadoop/common/trunk@1519333 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
66841c29db
commit
ff69557040
|
@ -142,6 +142,9 @@ Release 2.1.1-beta - UNRELEASED
|
|||
YARN-1101. Active nodes can be decremented below 0 (Robert Parker
|
||||
via tgraves)
|
||||
|
||||
YARN-1077. Fixed TestContainerLaunch test failure on Windows. (Chuan Liu via
|
||||
vinodkv)
|
||||
|
||||
Release 2.1.0-beta - 2013-08-22
|
||||
|
||||
INCOMPATIBLE CHANGES
|
||||
|
|
|
@ -525,7 +525,8 @@ public class ContainerLaunch implements Callable<Integer> {
|
|||
|
||||
@Override
|
||||
public void env(String key, String value) {
|
||||
line("@set ", key, "=", value);
|
||||
line("@set ", key, "=", value,
|
||||
"\nif %errorlevel% neq 0 exit /b %errorlevel%");
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -32,6 +32,7 @@ import org.apache.hadoop.conf.Configuration;
|
|||
import org.apache.hadoop.fs.FileContext;
|
||||
import org.apache.hadoop.fs.UnsupportedFileSystemException;
|
||||
import org.apache.hadoop.service.AbstractService;
|
||||
import org.apache.hadoop.util.Shell;
|
||||
import org.apache.hadoop.yarn.api.records.ContainerId;
|
||||
import org.apache.hadoop.yarn.event.Dispatcher;
|
||||
import org.apache.hadoop.yarn.event.EventHandler;
|
||||
|
@ -149,7 +150,8 @@ public class ContainersLauncher extends AbstractService
|
|||
dispatcher.getEventHandler().handle(
|
||||
new ContainerExitEvent(containerId,
|
||||
ContainerEventType.CONTAINER_KILLED_ON_REQUEST,
|
||||
ExitCode.TERMINATED.getExitCode(),
|
||||
Shell.WINDOWS ? ExitCode.FORCE_KILLED.getExitCode() :
|
||||
ExitCode.TERMINATED.getExitCode(),
|
||||
"Container terminated before launch."));
|
||||
}
|
||||
}
|
||||
|
|
|
@ -240,15 +240,10 @@ public class TestContainerLaunch extends BaseContainerManagerTest {
|
|||
File shellFile = null;
|
||||
try {
|
||||
shellFile = Shell.appendScriptExtension(tmpDir, "hello");
|
||||
String timeoutCommand = Shell.WINDOWS ? "@echo \"hello\"" :
|
||||
"echo \"hello\"";
|
||||
PrintWriter writer = new PrintWriter(new FileOutputStream(shellFile));
|
||||
FileUtil.setExecutable(shellFile, true);
|
||||
writer.println(timeoutCommand);
|
||||
writer.close();
|
||||
Map<Path, List<String>> resources =
|
||||
new HashMap<Path, List<String>>();
|
||||
FileOutputStream fos = new FileOutputStream(shellFile);
|
||||
FileUtil.setExecutable(shellFile, true);
|
||||
|
||||
Map<String, String> env = new HashMap<String, String>();
|
||||
// invalid env
|
||||
|
@ -270,7 +265,9 @@ public class TestContainerLaunch extends BaseContainerManagerTest {
|
|||
} catch(ExitCodeException e){
|
||||
diagnostics = e.getMessage();
|
||||
}
|
||||
Assert.assertTrue(diagnostics.contains("command not found"));
|
||||
Assert.assertTrue(diagnostics.contains(Shell.WINDOWS ?
|
||||
"is not recognized as an internal or external command" :
|
||||
"command not found"));
|
||||
Assert.assertTrue(shexc.getExitCode() != 0);
|
||||
}
|
||||
finally {
|
||||
|
@ -289,15 +286,16 @@ public class TestContainerLaunch extends BaseContainerManagerTest {
|
|||
try {
|
||||
shellFile = Shell.appendScriptExtension(tmpDir, "hello");
|
||||
// echo "hello" to stdout and "error" to stderr and exit code with 2;
|
||||
String command = Shell.WINDOWS ? "@echo \"hello\"; @echo \"error\" 1>&2; exit 2;" :
|
||||
"echo \"hello\"; echo \"error\" 1>&2; exit 2;";
|
||||
String command = Shell.WINDOWS ?
|
||||
"@echo \"hello\" & @echo \"error\" 1>&2 & exit /b 2" :
|
||||
"echo \"hello\"; echo \"error\" 1>&2; exit 2;";
|
||||
PrintWriter writer = new PrintWriter(new FileOutputStream(shellFile));
|
||||
FileUtil.setExecutable(shellFile, true);
|
||||
writer.println(command);
|
||||
writer.close();
|
||||
Map<Path, List<String>> resources =
|
||||
new HashMap<Path, List<String>>();
|
||||
FileOutputStream fos = new FileOutputStream(shellFile);
|
||||
FileOutputStream fos = new FileOutputStream(shellFile, true);
|
||||
|
||||
Map<String, String> env = new HashMap<String, String>();
|
||||
List<String> commands = new ArrayList<String>();
|
||||
|
|
Loading…
Reference in New Issue