MAPREDUCE-6492. AsyncDispatcher exit with NPE on 
TaskAttemptImpl#sendJHStartEventForAssignedFailTask. Contributed by Bibin A 
Chundatt


Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo
Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/ab11085b
Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/ab11085b
Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/ab11085b

Branch: refs/heads/HDFS-7240
Commit: ab11085b81353e1617875deb10f3c8e2a8b91a1e
Parents: e5992ef
Author: Jason Lowe <jl...@apache.org>
Authored: Mon Sep 28 22:12:03 2015 +0000
Committer: Jason Lowe <jl...@apache.org>
Committed: Mon Sep 28 22:12:03 2015 +0000

----------------------------------------------------------------------
 hadoop-mapreduce-project/CHANGES.txt                         | 4 ++++
 .../hadoop/mapreduce/v2/app/job/impl/TaskAttemptImpl.java    | 4 +++-
 .../hadoop/mapreduce/v2/app/job/impl/TestTaskAttempt.java    | 8 ++++++++
 3 files changed, 15 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hadoop/blob/ab11085b/hadoop-mapreduce-project/CHANGES.txt
----------------------------------------------------------------------
diff --git a/hadoop-mapreduce-project/CHANGES.txt 
b/hadoop-mapreduce-project/CHANGES.txt
index 67adcbd..da5ee0b 100644
--- a/hadoop-mapreduce-project/CHANGES.txt
+++ b/hadoop-mapreduce-project/CHANGES.txt
@@ -626,6 +626,10 @@ Release 2.7.2 - UNRELEASED
     MAPREDUCE-5982. Task attempts that fail from the ASSIGNED state can
     disappear (Chang Li via jlowe)
 
+    MAPREDUCE-6492. AsyncDispatcher exit with NPE on
+    TaskAttemptImpl#sendJHStartEventForAssignedFailTask (Bibin A Chundatt via
+    jlowe)
+
 Release 2.7.1 - 2015-07-06 
 
   INCOMPATIBLE CHANGES

http://git-wip-us.apache.org/repos/asf/hadoop/blob/ab11085b/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-app/src/main/java/org/apache/hadoop/mapreduce/v2/app/job/impl/TaskAttemptImpl.java
----------------------------------------------------------------------
diff --git 
a/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-app/src/main/java/org/apache/hadoop/mapreduce/v2/app/job/impl/TaskAttemptImpl.java
 
b/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-app/src/main/java/org/apache/hadoop/mapreduce/v2/app/job/impl/TaskAttemptImpl.java
index a7becdb..db4f585 100644
--- 
a/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-app/src/main/java/org/apache/hadoop/mapreduce/v2/app/job/impl/TaskAttemptImpl.java
+++ 
b/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-app/src/main/java/org/apache/hadoop/mapreduce/v2/app/job/impl/TaskAttemptImpl.java
@@ -1486,7 +1486,9 @@ public abstract class TaskAttemptImpl implements
 
   private static void
       sendJHStartEventForAssignedFailTask(TaskAttemptImpl taskAttempt) {
-    TaskAttemptContainerLaunchedEvent event;
+    if (null == taskAttempt.container) {
+      return;
+    }
     taskAttempt.launchTime = taskAttempt.clock.getTime();
 
     InetSocketAddress nodeHttpInetAddr =

http://git-wip-us.apache.org/repos/asf/hadoop/blob/ab11085b/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-app/src/test/java/org/apache/hadoop/mapreduce/v2/app/job/impl/TestTaskAttempt.java
----------------------------------------------------------------------
diff --git 
a/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-app/src/test/java/org/apache/hadoop/mapreduce/v2/app/job/impl/TestTaskAttempt.java
 
b/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-app/src/test/java/org/apache/hadoop/mapreduce/v2/app/job/impl/TestTaskAttempt.java
index 6b4656a..1ed8098 100644
--- 
a/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-app/src/test/java/org/apache/hadoop/mapreduce/v2/app/job/impl/TestTaskAttempt.java
+++ 
b/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-app/src/test/java/org/apache/hadoop/mapreduce/v2/app/job/impl/TestTaskAttempt.java
@@ -774,6 +774,14 @@ public class TestTaskAttempt{
     assertFalse(
         "InternalError occurred trying to handle TA_DIAGNOSTICS_UPDATE on 
assigned task",
         eventHandler.internalError);
+    try {
+      taImpl.handle(new TaskAttemptEvent(attemptId,
+          TaskAttemptEventType.TA_KILL));
+      Assert.assertTrue("No exception on UNASSIGNED STATE KILL event", true);
+    } catch (Exception e) {
+      Assert.assertFalse(
+          "Exception not expected for UNASSIGNED STATE KILL event", true);
+    }
   }
 
   @Test

Reply via email to