MAPREDUCE-2963. Fix hang in TestMRJobs. Contributed by Siddharth Seth.

git-svn-id: https://svn.apache.org/repos/asf/hadoop/common/trunk@1166975 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Arun Murthy 2011-09-09 03:01:08 +00:00
parent a0f13a28f7
commit 71e0515433
2 changed files with 16 additions and 3 deletions

View File

@ -1251,6 +1251,8 @@ Release 0.23.0 - Unreleased
incorrectly assume application was gone by making submission synchronous
for RMAppManager. (Thomas Graves via acmurthy)
MAPREDUCE-2963. Fix hang in TestMRJobs. (Siddharth Seth via acmurthy)
Release 0.22.0 - Unreleased
INCOMPATIBLE CHANGES

View File

@ -19,6 +19,7 @@
package org.apache.hadoop.mapred;
import java.io.IOException;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.security.PrivilegedAction;
import java.util.HashMap;
@ -197,7 +198,7 @@ private MRClientProtocol getProxy() throws YarnRemoteException {
//succeeded.
if (application.getState() == ApplicationState.SUCCEEDED) {
LOG.info("Application state is completed. " +
"Redirecting to job history server " + serviceAddr);
"Redirecting to job history server");
realProxy = historyServerProxy;
}
return realProxy;
@ -238,8 +239,14 @@ private synchronized Object invoke(String method, Class argClass,
LOG.warn("Exception thrown by remote end.");
LOG.warn(RPCUtil.toString(yre));
throw yre;
} catch (InvocationTargetException e) {
//TODO Finite # of errors before giving up?
LOG.info("Failed to contact AM/History for job " + jobId
+ " Will retry..", e.getTargetException());
forceRefresh = true;
} catch (Exception e) {
LOG.info("Failed to contact AM for job " + jobId + " Will retry..");
LOG.info("Failed to contact AM/History for job " + jobId
+ " Will retry..", e);
LOG.debug("Failing to contact application master", e);
forceRefresh = true;
}
@ -306,9 +313,13 @@ JobStatus getJobStatus(JobID oldJobID) throws YarnRemoteException {
return TypeConverter.fromYarn(report, jobFile, "");
}
org.apache.hadoop.mapreduce.TaskReport[] getTaskReports(JobID jobID, TaskType taskType)
org.apache.hadoop.mapreduce.TaskReport[] getTaskReports(JobID oldJobID, TaskType taskType)
throws YarnRemoteException, YarnRemoteException {
org.apache.hadoop.mapreduce.v2.api.records.JobId jobId =
TypeConverter.toYarn(oldJobID);
GetTaskReportsRequest request = recordFactory.newRecordInstance(GetTaskReportsRequest.class);
request.setJobId(jobId);
request.setTaskType(TypeConverter.toYarn(taskType));
List<org.apache.hadoop.mapreduce.v2.api.records.TaskReport> taskReports =
((GetTaskReportsResponse) invoke("getTaskReports", GetTaskReportsRequest.class,