[ https://issues.apache.org/jira/browse/YARN-2124?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14028048#comment-14028048 ]
Jian He commented on YARN-2124: ------------------------------- Looks good, +1 > ProportionalCapacityPreemptionPolicy cannot work because it's initialized > before scheduler initialized > ------------------------------------------------------------------------------------------------------ > > Key: YARN-2124 > URL: https://issues.apache.org/jira/browse/YARN-2124 > Project: Hadoop YARN > Issue Type: Bug > Components: resourcemanager, scheduler > Affects Versions: 3.0.0 > Reporter: Wangda Tan > Assignee: Wangda Tan > Priority: Critical > Attachments: YARN-2124.patch, YARN-2124.patch > > > When I play with scheduler with preemption, I found > ProportionalCapacityPreemptionPolicy cannot work. NPE will be raised when RM > start > {code} > 2014-06-05 11:01:33,201 ERROR > org.apache.hadoop.yarn.YarnUncaughtExceptionHandler: Thread > Thread[SchedulingMonitor (ProportionalCapacityPreemptionPolicy),5,main] threw > an Exception. > java.lang.NullPointerException > at > org.apache.hadoop.yarn.util.resource.Resources.greaterThan(Resources.java:225) > at > org.apache.hadoop.yarn.server.resourcemanager.monitor.capacity.ProportionalCapacityPreemptionPolicy.computeIdealResourceDistribution(ProportionalCapacityPreemptionPolicy.java:302) > at > org.apache.hadoop.yarn.server.resourcemanager.monitor.capacity.ProportionalCapacityPreemptionPolicy.recursivelyComputeIdealAssignment(ProportionalCapacityPreemptionPolicy.java:261) > at > org.apache.hadoop.yarn.server.resourcemanager.monitor.capacity.ProportionalCapacityPreemptionPolicy.containerBasedPreemptOrKill(ProportionalCapacityPreemptionPolicy.java:198) > at > org.apache.hadoop.yarn.server.resourcemanager.monitor.capacity.ProportionalCapacityPreemptionPolicy.editSchedule(ProportionalCapacityPreemptionPolicy.java:174) > at > org.apache.hadoop.yarn.server.resourcemanager.monitor.SchedulingMonitor.invokePolicy(SchedulingMonitor.java:72) > at > org.apache.hadoop.yarn.server.resourcemanager.monitor.SchedulingMonitor$PreemptionChecker.run(SchedulingMonitor.java:82) > at java.lang.Thread.run(Thread.java:744) > {code} > This is caused by ProportionalCapacityPreemptionPolicy needs > ResourceCalculator from CapacityScheduler. But > ProportionalCapacityPreemptionPolicy get initialized before CapacityScheduler > initialized. So ResourceCalculator will set to null in > ProportionalCapacityPreemptionPolicy. -- This message was sent by Atlassian JIRA (v6.2#6252)