[ 
https://issues.apache.org/jira/browse/YARN-9580?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16851623#comment-16851623
 ] 

Tao Yang commented on YARN-9580:
--------------------------------

Found another problem about reservation when multi-node enabled, scheduler 
iterates all nodes and try to allocate for reserved container in 
LeafQueue#allocateFromReservedContainer. Here there are two problems:
 # The node of reserved container should be taken as candidates instead of all 
nodes when calling FiCaSchedulerApp#assignContainers, otherwise later scheduler 
may generate a reservation-fulfilled proposal on another node, which will 
always be rejected when committing.
 # Assignment returned by FiCaSchedulerApp#assignContainers could never be null 
even if it's just skipped, it will break the normal scheduling process for this 
leaf queue because of the if clause in LeafQueue#assignContainers: "if (null != 
assignment) \{ return assignment;}"

> Fulfilled reservation information in assignment is lost when transferring in 
> ParentQueue#assignContainers
> ---------------------------------------------------------------------------------------------------------
>
>                 Key: YARN-9580
>                 URL: https://issues.apache.org/jira/browse/YARN-9580
>             Project: Hadoop YARN
>          Issue Type: Bug
>          Components: capacityscheduler
>            Reporter: Tao Yang
>            Assignee: Tao Yang
>            Priority: Major
>         Attachments: YARN-9580.001.patch
>
>
> When transferring assignment from child queue to parent queue, fulfilled 
> reservation information including fulfilledReservation and 
> fulfilledReservedContainer in assignment is lost.
> When multi-nodes enabled, this lost can raise a problem that allocation 
> proposal is generated but can't be accepted because there is a check for 
> fulfilled reservation information in 
> FiCaSchedulerApp#commonCheckContainerAllocation, this endless loop will 
> always be there and the resource of the node can't be used anymore.
> In HB-driven scheduling mode, fulfilled reservation can be allocated via 
> another calling stack: CapacityScheduler#allocateContainersToNode -->  
> CapacityScheduler#allocateContainerOnSingleNode --> 
> CapacityScheduler#allocateFromReservedContainer, in this way assignment can 
> be generated by leaf queue and directly submitted, I think that's why we 
> hardly find this problem before.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to