You are viewing a plain text version of this content. The canonical link for it is here.
Posted to mapreduce-dev@hadoop.apache.org by "Rohith (JIRA)" <ji...@apache.org> on 2014/02/24 12:54:22 UTC

[jira] [Created] (MAPREDUCE-5764) Potential NullPointerException in YARNRunner.killJob(JobID arg0)

Rohith created MAPREDUCE-5764:
---------------------------------

             Summary: Potential NullPointerException in YARNRunner.killJob(JobID arg0)
                 Key: MAPREDUCE-5764
                 URL: https://issues.apache.org/jira/browse/MAPREDUCE-5764
             Project: Hadoop Map/Reduce
          Issue Type: Bug
    Affects Versions: 2.3.0
            Reporter: Rohith
            Assignee: Rohith


I found YARNRunner.killJob(JobID arg0) can throw NullPointerExpetion if job status is null. 
bq. clientCache.getClient(arg0).getJobStatus(arg0);  can be null.
This can happen when there is history write is failed because of hdfs errors or staging directory is different from history server..
 
We need to have null check otherwise killJob() is prone to throw NPE which cause joblient to exit.

{noformat}
@Override
  public void killJob(JobID arg0) throws IOException, InterruptedException {
    /* check if the status is not running, if not send kill to RM */
    JobStatus status = clientCache.getClient(arg0).getJobStatus(arg0);
    if (status.getState() != JobStatus.State.RUNNING) {
      try {
        resMgrDelegate.killApplication(TypeConverter.toYarn(arg0).getAppId());
      } catch (YarnException e) {
        throw new IOException(e);
      }
      return;
    }
.......
......
.......
  }
{noformat}



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)