Peter Bacsko created YUNIKORN-2766:
--------------------------------------

             Summary: Only generate event if all predicates failed
                 Key: YUNIKORN-2766
                 URL: https://issues.apache.org/jira/browse/YUNIKORN-2766
             Project: Apache YuniKorn
          Issue Type: Improvement
          Components: core - scheduler
            Reporter: Peter Bacsko
            Assignee: Peter Bacsko


Right now, we send an event to the pod if a predicate failed:

{noformat}
if err := plugin.Predicates(&si.PredicatesArgs{
                        AllocationKey: allocationKey,
                        NodeID:        sn.NodeID,
                        Allocate:      allocate,
                }); err != nil {
                        log.Log(log.SchedNode).Debug("running predicates 
failed",
                                zap.String("allocationKey", allocationKey),
                                zap.String("nodeID", sn.NodeID),
                                zap.Bool("allocateFlag", allocate),
                                zap.Error(err))
                        // running predicates failed
                        msg := err.Error()
                        ask.LogAllocationFailure(msg, allocate)
                        ask.SendPredicateFailedEvent(msg)
                        return false
                }
{noformat}

This is, however, not correct. We should only generate an event if *all* 
predicates have failed, which means that the pod cannot be scheduled. A failing 
predicate for a given node can be perfectly normal in many cases.

Instead, we should aggregate the failed predicates and send an event like:

{noformat}
All predicates failed for request '345d70d7-243a-4077-a9f8-0bb76c3532d7': 
node(s) didn't match Pod's node affinity/selector (20x), node(s) had taints 
that the pod didn't tolerate (5x)
{noformat}

where 20x and 5x tell how many times a certain predicate failed.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@yunikorn.apache.org
For additional commands, e-mail: dev-h...@yunikorn.apache.org

Reply via email to