manirajv06 commented on code in PR #1096:
URL: https://github.com/apache/yunikorn-core/pull/1096#discussion_r3621284176


##########
pkg/scheduler/objects/application.go:
##########
@@ -1085,8 +1085,29 @@ func (sa *Application) tryAllocate(headRoom 
*resources.Resource, allowPreemption
                request.setHeadroomCheckPassed(sa.queuePath)
 
                requiredNode := request.GetRequiredNode()
+
+               // run predicates for this pod before in hand and fetch 
feasible nodes
+               feasibleNodes, predicatesResult := 
request.preAllocateConditions(true)

Review Comment:
   (Answering both comments for the same lines together)
   
   Like we discussed offline, I do agree that we need to run this pod on this 
node at any cost. That is the intent. But there could be chance that node might 
not even fit with basic eligibility rules itself like affinity rules etc. So, 
we need to run the predicate checks to get the bare minimum checks passed in 
the first place.
   
   Inaddition, PreFilter is required as whole filter plugins works based on 
`cycleState` persisted during former happens. During this PreFilter call, 
`cyclestate` would be persisted and used when the filter predicate run happens 
later through `tryNode` inside `tryRequiredNode`



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to