hadoop-common-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Arun C Murthy (JIRA)" <j...@apache.org>
Subject [jira] Updated: (HADOOP-1060) IndexOutOfBoundsException in JobInProgress.updateTaskStatus leads to hung jobs
Date Tue, 06 Mar 2007 02:48:24 GMT

     [ https://issues.apache.org/jira/browse/HADOOP-1060?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Arun C Murthy updated HADOOP-1060:
----------------------------------

    Attachment: HADOOP-1060_20070305_1.patch

Here is a patch which fixes the problem; basically the events-counter wasn't being manipulated
correctly - also this fixes the JobClient to correctly handle lost trackers and fixes a synchronization
issue in the JobTracker.

However there is an issue with this patch: With TASKTRACKER_EXPIRY_INTERVAL (set to the current
default of 10mins) this patch works like a charm, I've tried manually bringing down trackers
etc. and all unit-tests pass; however when I tried to test it with smaller expiry intervals
(3m/5m) I see some weird behaviour; bringing this to everyone's attention while I dive deeper.

a) Set to 3mins i.e. ExpiryTrackerThread kicks in every minute
  The JT goes into a tizzy and seems to get overloaded e.g. all IPCs from the JobClient timeout
and eventually it kills the job.

b)  Set to 3mins i.e. ExpiryTrackerThread kicks in every minute and a two-thirds
  I see that the reduces hang with infinite logs of this nature: 
2007-03-06 02:01:43,203 INFO org.apache.hadoop.mapred.TaskRunner: task_0002_r_000017_0 Need
4 map output(s)
2007-03-06 02:01:43,203 INFO org.apache.hadoop.mapred.TaskRunner: task_0002_r_000017_0 Need
4 map output location(s)
2007-03-06 02:01:43,204 INFO org.apache.hadoop.mapred.TaskRunner: task_0002_r_000017_0 Got
0 new map outputs from jobtracker and 0 map outputs from previous failures
2007-03-06 02:01:43,204 INFO org.apache.hadoop.mapred.TaskRunner: task_0002_r_000017_0 Got
4 known map output location(s); scheduling...
2007-03-06 02:01:43,204 INFO org.apache.hadoop.mapred.TaskRunner: task_0002_r_000017_0 Scheduled
0 of 4 known outputs (4 slow hosts and 0 dup hosts)
2007-03-06 02:01:44,084 INFO org.apache.hadoop.mapred.TaskTracker: task_0002_r_000017_0 0.3288889%
reduce > copy (296 of 300 at 0.00 MB/s) > 
2007-03-06 02:01:45,085 INFO org.apache.hadoop.mapred.TaskTracker: task_0002_r_000017_0 0.3288889%
reduce > copy (296 of 300 at 0.00 MB/s) > 
2007-03-06 02:01:46,087 INFO org.apache.hadoop.mapred.TaskTracker: task_0002_r_000017_0 0.3288889%
reduce > copy (296 of 300 at 0.00 MB/s) > 
2007-03-06 02:01:47,089 INFO org.apache.hadoop.mapred.TaskTracker: task_0002_r_000017_0 0.3288889%
reduce > copy (296 of 300 at 0.00 MB/s) > 
2007-03-06 02:01:48,092 INFO org.apache.hadoop.mapred.TaskTracker: task_0002_r_000017_0 0.3288889%
reduce > copy (296 of 300 at 0.00 MB/s) > 


Appreciate any insights/reviews while I continue digging...

> IndexOutOfBoundsException in JobInProgress.updateTaskStatus leads to hung jobs
> ------------------------------------------------------------------------------
>
>                 Key: HADOOP-1060
>                 URL: https://issues.apache.org/jira/browse/HADOOP-1060
>             Project: Hadoop
>          Issue Type: Bug
>          Components: mapred
>    Affects Versions: 0.12.0
>            Reporter: Arun C Murthy
>         Assigned To: Arun C Murthy
>            Priority: Critical
>             Fix For: 0.12.1
>
>         Attachments: HADOOP-1060_20070305_1.patch
>
>
> When the JobTracker detects that a TaskTracker is 'lost' and tries to fail the incomplete
tasks and the completed map tasks it fails with:
> 2007-03-03 00:38:24,056 ERROR org.apache.hadoop.mapred.JobTracker: Tracker Expiry Thread
got exception: java.lang.IndexOutOfBoundsException: Index: 310, Size: 307
>         at java.util.ArrayList.RangeCheck(ArrayList.java:546)
>         at java.util.ArrayList.get(ArrayList.java:321)
>         at org.apache.hadoop.mapred.JobInProgress.updateTaskStatus(JobInProgress.java:342)
>         at org.apache.hadoop.mapred.JobInProgress.failedTask(JobInProgress.java:862)
>         at org.apache.hadoop.mapred.JobTracker.lostTaskTracker(JobTracker.java:1637)
>         at org.apache.hadoop.mapred.JobTracker$ExpireTrackers.run(JobTracker.java:269)
>         at java.lang.Thread.run(Thread.java:595)
> Another instance of same exception:
> 2007-03-05 07:44:42,869 INFO org.apache.hadoop.ipc.Server: IPC Server handler 9 on 50020
call error: java.io.IOException: java.lang.IndexOutOfBoundsException: Index: 12341
> 215, Size: 83189
> java.io.IOException: java.lang.IndexOutOfBoundsException: Index: 12341215, Size: 83189
>         at java.util.ArrayList.RangeCheck(ArrayList.java:547)
>         at java.util.ArrayList.get(ArrayList.java:322)
>         at org.apache.hadoop.mapred.JobInProgress.updateTaskStatus(JobInProgress.java:342)
>         at org.apache.hadoop.mapred.JobTracker.updateTaskStatuses(JobTracker.java:1611)
>         at org.apache.hadoop.mapred.JobTracker.processHeartbeat(JobTracker.java:1163)
>         at org.apache.hadoop.mapred.JobTracker.heartbeat(JobTracker.java:1037)
>         at sun.reflect.GeneratedMethodAccessor5.invoke(Unknown Source)
>         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>         at java.lang.reflect.Method.invoke(Method.java:597)
>         at org.apache.hadoop.ipc.RPC$Server.call(RPC.java:336)
>         at org.apache.hadoop.ipc.Server$Handler.run(Server.java:559)
> This means that the tasks aren't updated correctly and the JT just assumes the task is
running and never restarts the task... thereby leading to a hung job.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


Mime
View raw message