MAPREDUCE-6492. AsyncDispatcher exit with NPE on
TaskAttemptImpl#sendJHStartEventForAssignedFailTask. Contributed by Bibin A
Chundatt
(cherry picked from commit ab11085b81353e1617875deb10f3c8e2a8b91a1e)
(cherry picked from commit fc10c9983901cd231f8ec959675d741512716b9e)
Conflicts:
hadoop-mapreduce-project/CHANGES.txt
Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo
Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/de92dd58
Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/de92dd58
Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/de92dd58
Branch: refs/heads/branch-2.6
Commit: de92dd582871b7cfb64b8023335b00cb70d182ea
Parents: 3d010b0
Author: Jason Lowe <[email protected]>
Authored: Mon Jan 11 17:20:56 2016 +0000
Committer: Jason Lowe <[email protected]>
Committed: Mon Jan 11 17:20:56 2016 +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/de92dd58/hadoop-mapreduce-project/CHANGES.txt
----------------------------------------------------------------------
diff --git a/hadoop-mapreduce-project/CHANGES.txt
b/hadoop-mapreduce-project/CHANGES.txt
index 830e4f1..7fb6162 100644
--- a/hadoop-mapreduce-project/CHANGES.txt
+++ b/hadoop-mapreduce-project/CHANGES.txt
@@ -13,6 +13,10 @@ Release 2.6.4 - 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)
+
OPTIMIZATIONS
BUG FIXES
http://git-wip-us.apache.org/repos/asf/hadoop/blob/de92dd58/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 db0d2c6..25e1b8d 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
@@ -1374,7 +1374,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/de92dd58/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 e3dd67a..3d1facf 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
@@ -753,6 +753,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