After going through the failure log, I think the following is the cause for failure.
The test expects first three attempts of the task to fail with System.exit, RuntimeTimeException and Timed out (failed to report
status in 30 seconds) respectively; and fourth attempt should succeed. But, in the test log, fourth attempt also timed out.
Here is the log for fourth attempt :
2010-03-22 01:25:51,560 INFO mapred.JobTracker (JobTracker.java:createTaskEntry(2484)) - Adding task (MAP)
'attempt_20100322012429762_0001_m_000000_3' to tip task_20100322012429762_0001_m_000000, for tracker
2010-03-22 01:25:51,562 INFO mapred.TaskTracker (TaskTracker.java:registerTask(2125)) - LaunchTaskAction
(registerTask): attempt_20100322012429762_0001_m_000000_3 task's state:UNASSIGNED
2010-03-22 01:25:51,562 INFO mapred.TaskTracker (TaskTracker.java:run(2062)) - Trying to launch :
attempt_20100322012429762_0001_m_000000_3 which needs 1 slots
2010-03-22 01:25:51,562 INFO mapred.TaskTracker (TaskTracker.java:run(2094)) - In TaskLauncher, current free slots : 2
and trying to launch attempt_20100322012429762_0001_m_000000_3 which needs 1 slots
2010-03-22 01:26:21,595 INFO mapred.TaskTracker (TaskTracker.java:markUnresponsiveTasks(1682)) -
attempt_20100322012429762_0001_m_000000_3: Task attempt_20100322012429762_0001_m_000000_3 failed to report status for
30 seconds. Killing!
2010-03-22 01:26:21,616 INFO mapred.TaskTracker (TaskTracker.java:purgeTask(1827)) - About to purge task:
2010-03-22 01:26:26,619 INFO mapred.TaskRunner (MapTaskRunner.java:close(43)) -
attempt_20100322012429762_0001_m_000000_3 done; removing files.
2010-03-22 01:26:26,620 INFO mapred.IndexCache (IndexCache.java:removeMap(140)) - Map ID
attempt_20100322012429762_0001_m_000000_3 not found in cache
For the fourth attempt, attempt_20100322012429762_0001_m_000000_3, I don't see the log saying "JVM with ID:xxxx is given
This says that jvm's getTask() has not returned in 30 seconds (the task's timeout configured in test). This is most likely because of
HADOOP-5130. We avoid this in our clusters by setting -Djava.net.preferIPv4Stack=true in mapred.child.java.opts.
Shall we set the same in Unit test(s) also ?