[ https://issues.apache.org/jira/browse/MAPREDUCE-1707?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12862131#action_12862131 ]
Vinod K V commented on MAPREDUCE-1707: -------------------------------------- bq. Instead of TaskRunner doing a back call to tasktracker to get the ugi, tracker.getRunningJob(t.getJobID()).getUGI(), ugi should be passed a parameter in the constructor of TaskRunner. Passing UGI all the way down to TaskRunner both looked wierd and resulted in ugly code changes. Instead, I am making the TaskRunner simply check if the the returned RunningJob null, i.e if the job is killed already, and skip the localization of dist-cache files. Long term, we need to cleanup the whole mess with the TaskTracker, TaskRunner and JvmManger interactions. The code is simply-not-maintainable in this form. > TaskRunner can get NPE in getting ugi from TaskTracker > ------------------------------------------------------ > > Key: MAPREDUCE-1707 > URL: https://issues.apache.org/jira/browse/MAPREDUCE-1707 > Project: Hadoop Map/Reduce > Issue Type: Bug > Components: tasktracker > Affects Versions: 0.22.0 > Reporter: Amareshwari Sriramadasu > Fix For: 0.22.0 > > > The following code in TaskRunner can get NPE in the scenario described below. > {code} > UserGroupInformation ugi = > tracker.getRunningJob(t.getJobID()).getUGI(); > {code} > The scenario: > Tracker got a LaunchTaskAction; Task is localized and TaskRunner is started. > Then Tracker got a KillJobAction; This would issue a kill for the task. But, > kill will be a no-op because the task did not actually start; The job is > removed from runningJobs. > Then if TaskRunner calls tracker.getRunningJob(t.getJobID()), it will be null. > Instead of TaskRunner doing a back call to tasktracker to get the ugi, > tracker.getRunningJob(t.getJobID()).getUGI(), ugi should be passed a > parameter in the constructor of TaskRunner. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.