You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@yunikorn.apache.org by "Craig Condit (Jira)" <ji...@apache.org> on 2023/05/10 18:42:00 UTC

[jira] [Resolved] (YUNIKORN-1730) TestTryAllocatePreemptNode passes by accident

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

Craig Condit resolved YUNIKORN-1730.
------------------------------------
    Resolution: Not A Problem

> TestTryAllocatePreemptNode passes by accident
> ---------------------------------------------
>
>                 Key: YUNIKORN-1730
>                 URL: https://issues.apache.org/jira/browse/YUNIKORN-1730
>             Project: Apache YuniKorn
>          Issue Type: Bug
>          Components: core - scheduler, test - unit
>            Reporter: Peter Bacsko
>            Assignee: Craig Condit
>            Priority: Major
>
> The unit test TestTryAllocatePreemptNode passes but does dot not things properly.
> Both iterator that is passed to the {{tryAllocate()}} are full iterators:
> {noformat}
> 2023-05-10T16:01:47.505+0200	DEBUG	objects/application.go:1391	app reservation check	{"allocationKey": "alloc3", "createTime": "2023-05-10T16:01:37.503+0200", "askAge": "10.002078359s", "reservationDelay": "2s"}
> 2023-05-10T16:01:47.506+0200	DEBUG	objects/application.go:1391	app reservation check	{"allocationKey": "alloc3", "createTime": "2023-05-10T16:01:37.503+0200", "askAge": "10.002117507s", "reservationDelay": "2s"}
> 2023-05-10T16:01:47.506+0200	DEBUG	objects/application.go:1407	found candidate node for app reservation	{"appID": "app-2", "nodeID": "node1", "allocationKey": "alloc3", "reservations": 0, "pendingRepeats": 1}
> 2023-05-10T16:01:47.506+0200	DEBUG	objects/application.go:1391	app reservation check	{"allocationKey": "alloc3", "createTime": "2023-05-10T16:01:07.503+0200", "askAge": "40.002152549s", "reservationDelay": "2s"}
> 2023-05-10T16:01:47.506+0200	DEBUG	objects/application.go:1391	app reservation check	{"allocationKey": "alloc3", "createTime": "2023-05-10T16:01:07.503+0200", "askAge": "40.002165214s", "reservationDelay": "2s"}
> 2023-05-10T16:01:47.506+0200	DEBUG	objects/preemption.go:345	No RM callback plugin registered, using first selected node for preemption	{"NodeID": "node1", "AllocationKey": "alloc3"}
> 2023-05-10T16:01:47.506+0200	INFO	objects/preemption.go:545	Preempting task	{"applicationID": "app-1", "allocationKey": "alloc1", "nodeID": "node1", "resources": "map[first:5]"}
> 2023-05-10T16:01:47.506+0200	INFO	objects/preemption.go:566	Reserving node for ask after preemption	{"allocationKey": "alloc3", "nodeID": "node1", "victimCount": 1}
> {noformat}
> With modifying the first iterator to return only unreserved nodes, we'll have no preemption:
> {noformat}
> 2023-05-10T16:03:09.605+0200	DEBUG	objects/application.go:1391	app reservation check	{"allocationKey": "alloc3", "createTime": "2023-05-10T16:02:59.605+0200", "askAge": "10.000480105s", "reservationDelay": "2s"}
> 2023-05-10T16:03:09.605+0200	DEBUG	objects/application.go:1391	app reservation check	{"allocationKey": "alloc3", "createTime": "2023-05-10T16:02:59.605+0200", "askAge": "10.000499502s", "reservationDelay": "2s"}
> 2023-05-10T16:03:09.605+0200	DEBUG	objects/application.go:1407	found candidate node for app reservation	{"appID": "app-2", "nodeID": "node1", "allocationKey": "alloc3", "reservations": 0, "pendingRepeats": 1}
> 2023-05-10T16:03:09.605+0200	DEBUG	objects/application.go:1391	app reservation check	{"allocationKey": "alloc3", "createTime": "2023-05-10T16:02:29.605+0200", "askAge": "40.000538123s", "reservationDelay": "2s"}
> 2023-05-10T16:03:09.605+0200	DEBUG	objects/application.go:1407	found candidate node for app reservation	{"appID": "app-2", "nodeID": "node2", "allocationKey": "alloc3", "reservations": 0, "pendingRepeats": 1}
>     application_test.go:1795: assertion failed: expression is false: alloc1.IsPreempted(): alloc1 should have been preempted
> --- FAIL: TestTryAllocatePreemptNode (0.01s)
> {noformat}
> Note that this is not the only testcase where both iterators are full, but this seems to be only one which actually fails when the iterator is fixed.



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

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