Author: bobby Date: Thu Sep 6 22:22:01 2012 New Revision: 1381786 URL: http://svn.apache.org/viewvc?rev=1381786&view=rev Log: svn merge -c 1381784 FIXES: MAPREDUCE-4641. Exception in commitJob marks job as successful in job history (Jason Lowe via bobby)
Modified: hadoop/common/branches/branch-2/hadoop-mapreduce-project/CHANGES.txt hadoop/common/branches/branch-2/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-app/src/main/java/org/apache/hadoop/mapreduce/v2/app/job/impl/JobImpl.java hadoop/common/branches/branch-2/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-app/src/test/java/org/apache/hadoop/mapreduce/v2/app/job/impl/TestJobImpl.java Modified: hadoop/common/branches/branch-2/hadoop-mapreduce-project/CHANGES.txt URL: http://svn.apache.org/viewvc/hadoop/common/branches/branch-2/hadoop-mapreduce-project/CHANGES.txt?rev=1381786&r1=1381785&r2=1381786&view=diff ============================================================================== --- hadoop/common/branches/branch-2/hadoop-mapreduce-project/CHANGES.txt (original) +++ hadoop/common/branches/branch-2/hadoop-mapreduce-project/CHANGES.txt Thu Sep 6 22:22:01 2012 @@ -759,6 +759,9 @@ Release 0.23.3 - UNRELEASED MAPREDUCE-4633. history server doesn't set permissions on all subdirs (tgraves via bobby) + MAPREDUCE-4641. Exception in commitJob marks job as successful in job + history (Jason Lowe via bobby) + Release 0.23.2 - UNRELEASED INCOMPATIBLE CHANGES Modified: hadoop/common/branches/branch-2/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-app/src/main/java/org/apache/hadoop/mapreduce/v2/app/job/impl/JobImpl.java URL: http://svn.apache.org/viewvc/hadoop/common/branches/branch-2/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-app/src/main/java/org/apache/hadoop/mapreduce/v2/app/job/impl/JobImpl.java?rev=1381786&r1=1381785&r2=1381786&view=diff ============================================================================== --- hadoop/common/branches/branch-2/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-app/src/main/java/org/apache/hadoop/mapreduce/v2/app/job/impl/JobImpl.java (original) +++ hadoop/common/branches/branch-2/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-app/src/main/java/org/apache/hadoop/mapreduce/v2/app/job/impl/JobImpl.java Thu Sep 6 22:22:01 2012 @@ -759,7 +759,8 @@ public class JobImpl implements org.apac job.getCommitter().commitJob(job.getJobContext()); } catch (IOException e) { LOG.error("Could not do commit for Job", e); - job.logJobHistoryFinishedEvent(); + job.addDiagnostic("Job commit failed: " + e.getMessage()); + job.abortJob(org.apache.hadoop.mapreduce.JobStatus.State.FAILED); return job.finished(JobState.FAILED); } job.logJobHistoryFinishedEvent(); @@ -1199,7 +1200,7 @@ public class JobImpl implements org.apac } } - private void abortJob( + protected void abortJob( org.apache.hadoop.mapreduce.JobStatus.State finalState) { try { committer.abortJob(jobContext, finalState); @@ -1501,7 +1502,7 @@ public class JobImpl implements org.apac } } - private void addDiagnostic(String diag) { + protected void addDiagnostic(String diag) { diagnostics.add(diag); } Modified: hadoop/common/branches/branch-2/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-app/src/test/java/org/apache/hadoop/mapreduce/v2/app/job/impl/TestJobImpl.java URL: http://svn.apache.org/viewvc/hadoop/common/branches/branch-2/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-app/src/test/java/org/apache/hadoop/mapreduce/v2/app/job/impl/TestJobImpl.java?rev=1381786&r1=1381785&r2=1381786&view=diff ============================================================================== --- hadoop/common/branches/branch-2/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-app/src/test/java/org/apache/hadoop/mapreduce/v2/app/job/impl/TestJobImpl.java (original) +++ hadoop/common/branches/branch-2/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-app/src/test/java/org/apache/hadoop/mapreduce/v2/app/job/impl/TestJobImpl.java Thu Sep 6 22:22:01 2012 @@ -19,9 +19,11 @@ package org.apache.hadoop.mapreduce.v2.app.job.impl; import static org.mockito.Matchers.any; +import static org.mockito.Matchers.eq; import static org.mockito.Mockito.doNothing; import static org.mockito.Mockito.doThrow; import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; import java.io.IOException; @@ -91,8 +93,6 @@ public class TestJobImpl { when(mockJob.getCommitter()).thenReturn(mockCommitter); when(mockJob.getEventHandler()).thenReturn(mockEventHandler); when(mockJob.getJobContext()).thenReturn(mockJobContext); - doNothing().when(mockJob).setFinishTime(); - doNothing().when(mockJob).logJobHistoryFinishedEvent(); when(mockJob.finished(JobState.KILLED)).thenReturn(JobState.KILLED); when(mockJob.finished(JobState.FAILED)).thenReturn(JobState.FAILED); when(mockJob.finished(JobState.SUCCEEDED)).thenReturn(JobState.SUCCEEDED); @@ -103,11 +103,13 @@ public class TestJobImpl { // commitJob stubbed out, so this can't happen } doNothing().when(mockEventHandler).handle(any(JobHistoryEvent.class)); + JobState jobState = JobImpl.checkJobCompleteSuccess(mockJob); Assert.assertNotNull("checkJobCompleteSuccess incorrectly returns null " + - "for successful job", - JobImpl.checkJobCompleteSuccess(mockJob)); + "for successful job", jobState); Assert.assertEquals("checkJobCompleteSuccess returns incorrect state", - JobState.FAILED, JobImpl.checkJobCompleteSuccess(mockJob)); + JobState.FAILED, jobState); + verify(mockJob).abortJob( + eq(org.apache.hadoop.mapreduce.JobStatus.State.FAILED)); } @Test