[ 
https://issues.apache.org/jira/browse/HADOOP-3590?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12605825#action_12605825
 ] 

Amar Kamat commented on HADOOP-3590:
------------------------------------

Following are some of the ways this issue can be addressed 
1) Fix {{JobTracker.getParent()}} to return {{null}} in case {{null}} is 
passed. This means that the scheduler will select nothing for the 
_not-yet-resolved_ trackers. The only problem is we are wasting task-tracker's 
processing cycles.
2) Throw a IOException with appropriate message like {{"Not Yet Found"}}. Here 
(1) seems like a better option and also we are wasting the cycles.
3) Define a new action for the task tracker like {{RETRY}} where the task 
tracker waits for some time before resending its old heartbeat. 
4) Randomly give some task rather than wasting cycles.
More? Thoughts? Comments?

> Null pointer exception in JobTracker when the task tracker is not yet resolved
> ------------------------------------------------------------------------------
>
>                 Key: HADOOP-3590
>                 URL: https://issues.apache.org/jira/browse/HADOOP-3590
>             Project: Hadoop Core
>          Issue Type: Bug
>          Components: mapred
>            Reporter: Amar Kamat
>            Assignee: Amar Kamat
>            Priority: Blocker
>             Fix For: 0.18.0
>
>
> 2008-06-17 13:29:56,711 INFO org.apache.hadoop.mapred.JobTracker: Got 
> heartbeat from: xxx (initialContact: false acceptNewTasks: true) with 
> responseId: 0
> 2008-06-17 13:29:56,711 INFO org.apache.hadoop.ipc.Server: IPC Server handler 
> 7 on 123, call heartbeat([EMAIL PROTECTED], true, true, -1) from xxx error: 
> java.io.IOException: java.lang.NullPointerException
> java.io.IOException: java.lang.NullPointerException
>        at 
> org.apache.hadoop.mapred.JobTracker.getParentNode(JobTracker.java:1327)
>        at 
> org.apache.hadoop.mapred.JobInProgress.findNewMapTask(JobInProgress.java:1142)
>        at 
> org.apache.hadoop.mapred.JobInProgress.obtainNewMapTask(JobInProgress.java:685)
>        at 
> org.apache.hadoop.mapred.JobTracker.getNewTaskForTaskTracker(JobTracker.java:1708)
>        at org.apache.hadoop.mapred.JobTracker.heartbeat(JobTracker.java:1431)
>        at sun.reflect.GeneratedMethodAccessor2.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:452)
>        at org.apache.hadoop.ipc.Server$Handler.run(Server.java:888)
> ----
> Looks like a corner case. This happens when the task tracker just joins the 
> JT and asks for a task to run. In a case where the task tracker is not yet 
> resolved, this can lead to null pointer exception. Remember that the task 
> trackers are  added to separate queue and resolved by a separate thread i.e 
> there is no forced resolution for task trackers. There is no side effect of 
> this bug since the task tracker will try again and also the job runs to 
> completion.

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

Reply via email to