You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@aurora.apache.org by "Bill Farner (JIRA)" <ji...@apache.org> on 2017/07/29 02:03:00 UTC
[jira] [Created] (AURORA-1943) PreemptionVictimFilter does not
handle varied ResourceTypes
Bill Farner created AURORA-1943:
-----------------------------------
Summary: PreemptionVictimFilter does not handle varied ResourceTypes
Key: AURORA-1943
URL: https://issues.apache.org/jira/browse/AURORA-1943
Project: Aurora
Issue Type: Bug
Components: Scheduler
Reporter: Bill Farner
Assignee: Bill Farner
Reported by Mauricio Garavaglia on the dev list:
{quote}
Hi guys,
There seems to be a bug in this comparator in PreemptionVictimFilter (
https://github.com/apache/aurora/blob/master/src/main/java/org/apache/aurora/scheduler/preemptor/PreemptionVictimFilter.java#L142)
because the comparator doesn’t satisfy transitivity, which is required by
Array.sort's Tim Sort implementation. This fails with a
"java.lang.IllegalArgumentException: Comparison method violates its general
contract!" from time to time.
For example this input of A, B, and C doesn't work in the current
comparator.
A: <1, 1, 1>
B: <2, 2, 2>
C: <0, 2, 1>
Based on the comparator:
B > A
B == C
C == A
Constructs impossible situation where C == B > A == C. As a workaround we
patched to simply sort based on RAM, but anyone have any suggestions about
what a permanent fix for upstream should be? Thanks
{quote}
A likely culprit is that the filter does not handle comparison of tasks containing different ResourceTypes.
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)