.../scheduler/AbstractYarnScheduler.java | 23 ++++++++++++---------- 1 file changed, 13 insertions(+), 10 deletions(-) diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/AbstractYarnScheduler.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/AbstractYarnScheduler.java index ae927f1..16957fc 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/AbstractYarnScheduler.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/AbstractYarnScheduler.java @@ -454,17 +454,20 @@ public void run() { for (SchedulerApplication app : applications.values()) { T attempt = app.getCurrentAppAttempt(); - synchronized (attempt) { - for (ContainerId containerId : attempt.getPendingRelease()) { - RMAuditLogger.logFailure( - app.getUser(), - AuditConstants.RELEASE_CONTAINER, - "Unauthorized access or invalid container", - "Scheduler", - "Trying to release container not owned by app or with invalid id.", - attempt.getApplicationId(), containerId); + if (attempt != null) { + synchronized (attempt) { + for (ContainerId containerId : attempt.getPendingRelease()) { + RMAuditLogger.logFailure( + app.getUser(), + AuditConstants.RELEASE_CONTAINER, + "Unauthorized access or invalid container", + "Scheduler", + "Trying to release container not owned by app " + + "or with invalid id.", + attempt.getApplicationId(), containerId); + } + attempt.getPendingRelease().clear(); } - attempt.getPendingRelease().clear(); } } LOG.info("Release request cache is cleaned up");