Steven Rand created YARN-6956: --------------------------------- Summary: preemption may only consider resource requests for one node Key: YARN-6956 URL: https://issues.apache.org/jira/browse/YARN-6956 Project: Hadoop YARN Issue Type: Bug Components: fairscheduler Affects Versions: 2.9.0, 3.0.0-beta1 Environment: CDH 5.11.0 Reporter: Steven Rand
I'm observing the following series of events on a CDH 5.11.0 cluster, which seem to be possible after https://issues.apache.org/jira/browse/YARN-6163: 1. An application is considered to be starved, so {{FSPreemptionThread}} calls {{identifyContainersToPreempt}}, and that calls {{FSAppAttempt#getStarvedResourceRequests}} to get a list of {{ResourceRequest}} instances that are enough to address the app's starvation. 2. The first {{ResourceRequest}} that {{getStarvedResourceRequests}} sees is enough to address the app's starvation, so we break out of the loop over {{appSchedulingInfo.getAllResourceRequests()}} after only one iteration: https://github.com/apache/hadoop/blob/trunk/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/fair/FSAppAttempt.java#L1180. We return only this one {{ResourceRequest}} back to the {{identifyContainersToPreempt}} method. 3. It turns out that this particular {{ResourceRequest}} happens to have a value for {{getResourceName}} that identifies a specific node in the cluster. This cause preemption to only consider containers on that node, and not the rest of the cluster. [~kasha], does that make sense? I'm happy to submit a patch if I'm understanding the problem correctly. -- This message was sent by Atlassian JIRA (v6.4.14#64029) --------------------------------------------------------------------- To unsubscribe, e-mail: yarn-issues-unsubscr...@hadoop.apache.org For additional commands, e-mail: yarn-issues-h...@hadoop.apache.org