You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@yunikorn.apache.org by "Craig Condit (Jira)" <ji...@apache.org> on 2022/03/16 16:08:00 UTC

[jira] [Assigned] (YUNIKORN-1121) MockScheduler addTask ignores resource settings

     [ https://issues.apache.org/jira/browse/YUNIKORN-1121?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Craig Condit reassigned YUNIKORN-1121:
--------------------------------------

    Assignee: Craig Condit

> MockScheduler addTask ignores resource settings
> -----------------------------------------------
>
>                 Key: YUNIKORN-1121
>                 URL: https://issues.apache.org/jira/browse/YUNIKORN-1121
>             Project: Apache YuniKorn
>          Issue Type: Bug
>          Components: shim - kubernetes
>            Reporter: Wilfred Spiegelenburg
>            Assignee: Craig Condit
>            Priority: Major
>              Labels: newbie
>
> Reviewing YUNIKORN-1105 I found a bug in the mock scheduler…
> Looking through the changes I saw files being changed that I thought would not require any changes. I ran the tests and they failed without the change. I was wondering why we were seeing those failures. I ran the tests in the debugger without the changes that I thought were unneeded and saw weird things.
> The problem is here:
> {code:java}
> func (fc *MockScheduler) addTask(appID string, taskID string, ask *si.Resource){code}
> Is hopelessly broken. The ask that gets passed in is completely ignored. That means every task that was created always was interpreted as a {{_PodQOSBestEffort_}} __ and got memory set to 1 which used to be 1M. Now that we fixed things it gets set to 1,000,000 or the real 1M.
> The breakage is triggered by the function in the resource code which does the right thing:
> {code:java}
> func GetPodResource(pod *v1.Pod) (resource *si.Resource){code}
> In the old setup as long as the memory for best effort (i.e. 1) was smaller than the resource set for the task things would just pass without an issue. Since 1 was the smallest possible it would always work. Accounting on nodes etc was most likely way off but none of these tests checked that anyway.
> This causes *all* tests that use resources within a Task using the mock scheduler to not test the real thing, not even close.
> It also hinders us from testing failure cases. We can never create a task that does not fit on a node as an example unless the node is full.



--
This message was sent by Atlassian Jira
(v8.20.1#820001)

---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscribe@yunikorn.apache.org
For additional commands, e-mail: issues-help@yunikorn.apache.org