Author: jlowe Date: Fri Feb 28 19:31:03 2014 New Revision: 1573039 URL: http://svn.apache.org/r1573039 Log: svn merge -c 1573035 FIXES: MAPREDUCE-5768. TestMRJobs.testContainerRollingLog fails on trunk. Contributed by Gera Shegalov
Modified: hadoop/common/branches/branch-2.4/hadoop-mapreduce-project/CHANGES.txt hadoop/common/branches/branch-2.4/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-jobclient/src/test/java/org/apache/hadoop/mapreduce/v2/TestMRJobs.java Modified: hadoop/common/branches/branch-2.4/hadoop-mapreduce-project/CHANGES.txt URL: http://svn.apache.org/viewvc/hadoop/common/branches/branch-2.4/hadoop-mapreduce-project/CHANGES.txt?rev=1573039&r1=1573038&r2=1573039&view=diff ============================================================================== --- hadoop/common/branches/branch-2.4/hadoop-mapreduce-project/CHANGES.txt (original) +++ hadoop/common/branches/branch-2.4/hadoop-mapreduce-project/CHANGES.txt Fri Feb 28 19:31:03 2014 @@ -39,6 +39,9 @@ Release 2.4.0 - UNRELEASED to the YARN's web-app proxy with the correct scheme prefix. (Jian He via vinodkv) + MAPREDUCE-5768. TestMRJobs.testContainerRollingLog fails on trunk (Gera + Shegalov via jlowe) + Release 2.3.1 - UNRELEASED INCOMPATIBLE CHANGES Modified: hadoop/common/branches/branch-2.4/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-jobclient/src/test/java/org/apache/hadoop/mapreduce/v2/TestMRJobs.java URL: http://svn.apache.org/viewvc/hadoop/common/branches/branch-2.4/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-jobclient/src/test/java/org/apache/hadoop/mapreduce/v2/TestMRJobs.java?rev=1573039&r1=1573038&r2=1573039&view=diff ============================================================================== --- hadoop/common/branches/branch-2.4/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-jobclient/src/test/java/org/apache/hadoop/mapreduce/v2/TestMRJobs.java (original) +++ hadoop/common/branches/branch-2.4/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-jobclient/src/test/java/org/apache/hadoop/mapreduce/v2/TestMRJobs.java Fri Feb 28 19:31:03 2014 @@ -23,7 +23,6 @@ import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; -import java.io.InputStreamReader; import java.io.IOException; import java.io.StringReader; import java.net.URI; @@ -82,8 +81,10 @@ import org.apache.hadoop.security.token. import org.apache.hadoop.util.JarFinder; import org.apache.hadoop.util.Shell; import org.apache.hadoop.yarn.api.records.ApplicationId; +import org.apache.hadoop.yarn.api.records.ContainerId; import org.apache.hadoop.yarn.conf.YarnConfiguration; import org.apache.hadoop.yarn.server.resourcemanager.rmapp.RMAppState; +import org.apache.hadoop.yarn.util.ConverterUtils; import org.apache.log4j.Level; import org.junit.AfterClass; import org.junit.Assert; @@ -492,28 +493,17 @@ public class TestMRJobs { LOG.info("Checking for glob: " + absSyslogGlob); final FileStatus[] syslogs = localFs.globStatus(absSyslogGlob); for (FileStatus slog : syslogs) { - // check all syslogs for the container - // - final FileStatus[] sysSiblings = localFs.globStatus(new Path( - slog.getPath().getParent(), TaskLog.LogName.SYSLOG + "*")); - boolean foundAppMaster = false; - floop: - for (FileStatus f : sysSiblings) { - final BufferedReader reader = new BufferedReader( - new InputStreamReader(localFs.open(f.getPath()))); - String line; - try { - while ((line = reader.readLine()) != null) { - if (line.contains(MRJobConfig.APPLICATION_MASTER_CLASS)) { - foundAppMaster = true; - break floop; - } - } - } finally { - reader.close(); - } + boolean foundAppMaster = job.isUber(); + final Path containerPathComponent = slog.getPath().getParent(); + if (!foundAppMaster) { + final ContainerId cid = ConverterUtils.toContainerId( + containerPathComponent.getName()); + foundAppMaster = (cid.getId() == 1); } + final FileStatus[] sysSiblings = localFs.globStatus(new Path( + containerPathComponent, TaskLog.LogName.SYSLOG + "*")); + if (foundAppMaster) { numAppMasters++; } else {