diff --git a/hadoop-mapreduce-project/CHANGES.txt b/hadoop-mapreduce-project/CHANGES.txt index 0bf5c9bf25..ba1a2d2f97 100644 --- a/hadoop-mapreduce-project/CHANGES.txt +++ b/hadoop-mapreduce-project/CHANGES.txt @@ -180,6 +180,9 @@ Release 2.5.0 - UNRELEASED MAPREDUCE-4937. MR AM handles an oversized split metainfo file poorly (Eric Payne via jlowe) + MAPREDUCE-5642. TestMiniMRChildTask fails on Windows. + (Chuan Liu via cnauroth) + Release 2.4.1 - UNRELEASED INCOMPATIBLE CHANGES diff --git a/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-jobclient/src/test/java/org/apache/hadoop/mapred/TestMiniMRChildTask.java b/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-jobclient/src/test/java/org/apache/hadoop/mapred/TestMiniMRChildTask.java index ec447c28a7..17b5fd28f1 100644 --- a/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-jobclient/src/test/java/org/apache/hadoop/mapred/TestMiniMRChildTask.java +++ b/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-jobclient/src/test/java/org/apache/hadoop/mapred/TestMiniMRChildTask.java @@ -254,6 +254,19 @@ public void configure(JobConf job) { checkEnv("NEW_PATH", File.pathSeparator + "/tmp", "noappend"); // check if X=$(tt's X var):/tmp for an old env variable inherited from // the tt + if (Shell.WINDOWS) { + // On Windows, PATH is replaced one more time as part of default config + // of "mapreduce.admin.user.env", i.e. on Windows, + // "mapreduce.admin.user.env" is set to + // "PATH=%PATH%;%HADOOP_COMMON_HOME%\\bin" + String hadoopHome = System.getenv("HADOOP_COMMON_HOME"); + if (hadoopHome == null) { + hadoopHome = ""; + } + String hadoopLibLocation = hadoopHome + "\\bin"; + path += File.pathSeparator + hadoopLibLocation; + path += File.pathSeparator + path; + } checkEnv("PATH", path + File.pathSeparator + "/tmp", "noappend"); String jobLocalDir = job.get(MRJobConfig.JOB_LOCAL_DIR); @@ -308,6 +321,19 @@ public void configure(JobConf job) { checkEnv("NEW_PATH", File.pathSeparator + "/tmp", "noappend"); // check if X=$(tt's X var):/tmp for an old env variable inherited from // the tt + if (Shell.WINDOWS) { + // On Windows, PATH is replaced one more time as part of default config + // of "mapreduce.admin.user.env", i.e. on Windows, + // "mapreduce.admin.user.env" + // is set to "PATH=%PATH%;%HADOOP_COMMON_HOME%\\bin" + String hadoopHome = System.getenv("HADOOP_COMMON_HOME"); + if (hadoopHome == null) { + hadoopHome = ""; + } + String hadoopLibLocation = hadoopHome + "\\bin"; + path += File.pathSeparator + hadoopLibLocation; + path += File.pathSeparator + path; + } checkEnv("PATH", path + File.pathSeparator + "/tmp", "noappend"); }