You are viewing a plain text version of this content. The canonical link for it is here.
Posted to yarn-dev@hadoop.apache.org by "nijel (JIRA)" <ji...@apache.org> on 2015/06/19 08:04:00 UTC

[jira] [Created] (YARN-3830) AbstractYarnScheduler.createReleaseCache may try to clean a null attempt

nijel created YARN-3830:
---------------------------

             Summary: AbstractYarnScheduler.createReleaseCache may try to clean a null attempt
                 Key: YARN-3830
                 URL: https://issues.apache.org/jira/browse/YARN-3830
             Project: Hadoop YARN
          Issue Type: Bug
            Reporter: nijel
            Assignee: nijel


org.apache.hadoop.yarn.server.resourcemanager.scheduler.AbstractYarnScheduler.createReleaseCache()
{code}
protected void createReleaseCache() {
    // Cleanup the cache after nm expire interval.
    new Timer().schedule(new TimerTask() {
      @Override
      public void run() {
        for (SchedulerApplication<T> app : applications.values()) {

          T attempt = app.getCurrentAppAttempt();
          synchronized (attempt) {
            for (ContainerId containerId : attempt.getPendingRelease()) {
              RMAuditLogger.logFailure(
{code}

Here the attempt can be null since the attempt is created later. So null pointer exception  will come
{code}
2015-06-19 09:29:16,195 | ERROR | Timer-3 | Thread Thread[Timer-3,5,main] threw an Exception. | YarnUncaughtExceptionHandler.java:68
java.lang.NullPointerException
	at org.apache.hadoop.yarn.server.resourcemanager.scheduler.AbstractYarnScheduler$1.run(AbstractYarnScheduler.java:457)
	at java.util.TimerThread.mainLoop(Timer.java:555)
	at java.util.TimerThread.run(Timer.java:505)
{code}

This will skip the other applications in this run.
Can add a null check and continue with other applications



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)