Merge -r 1166974:1166975 from trunk to branch-0.23 to fix MAPREDUCE-2963.

git-svn-id: https://svn.apache.org/repos/asf/hadoop/common/branches/branch-0.23@1166976 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Arun Murthy 2011-09-09 03:01:44 +00:00
parent a9b04ba0e9
commit 42dbcbb4d8
2 changed files with 16 additions and 3 deletions

View File

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

View File

@ -19,6 +19,7 @@
package org.apache.hadoop.mapred; package org.apache.hadoop.mapred;
import java.io.IOException; import java.io.IOException;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method; import java.lang.reflect.Method;
import java.security.PrivilegedAction; import java.security.PrivilegedAction;
import java.util.HashMap; import java.util.HashMap;
@ -197,7 +198,7 @@ class ClientServiceDelegate {
//succeeded. //succeeded.
if (application.getState() == ApplicationState.SUCCEEDED) { if (application.getState() == ApplicationState.SUCCEEDED) {
LOG.info("Application state is completed. " + LOG.info("Application state is completed. " +
"Redirecting to job history server " + serviceAddr); "Redirecting to job history server");
realProxy = historyServerProxy; realProxy = historyServerProxy;
} }
return realProxy; return realProxy;
@ -238,8 +239,14 @@ class ClientServiceDelegate {
LOG.warn("Exception thrown by remote end."); LOG.warn("Exception thrown by remote end.");
LOG.warn(RPCUtil.toString(yre)); LOG.warn(RPCUtil.toString(yre));
throw 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) { } 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); LOG.debug("Failing to contact application master", e);
forceRefresh = true; forceRefresh = true;
} }
@ -306,9 +313,13 @@ class ClientServiceDelegate {
return TypeConverter.fromYarn(report, jobFile, ""); 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 { throws YarnRemoteException, YarnRemoteException {
org.apache.hadoop.mapreduce.v2.api.records.JobId jobId =
TypeConverter.toYarn(oldJobID);
GetTaskReportsRequest request = recordFactory.newRecordInstance(GetTaskReportsRequest.class); GetTaskReportsRequest request = recordFactory.newRecordInstance(GetTaskReportsRequest.class);
request.setJobId(jobId);
request.setTaskType(TypeConverter.toYarn(taskType));
List<org.apache.hadoop.mapreduce.v2.api.records.TaskReport> taskReports = List<org.apache.hadoop.mapreduce.v2.api.records.TaskReport> taskReports =
((GetTaskReportsResponse) invoke("getTaskReports", GetTaskReportsRequest.class, ((GetTaskReportsResponse) invoke("getTaskReports", GetTaskReportsRequest.class,