Description
The scheduler will encounter an IllegalArgumentException if the slave attributes includes more than one attribute by the same name. Example stack trace from a unit test to repro the issue:
java.lang.IllegalArgumentException: expected one element but was: <Attribute(name:jvm, values:[1.4]), Attribute(name:jvm, values:[1.6, 1.7])> at com.google.common.collect.Iterators.getOnlyElement(Iterators.java:312) at com.google.common.collect.Iterators.getOnlyElement(Iterators.java:324) at com.google.common.collect.Iterables.getOnlyElement(Iterables.java:299) at org.apache.aurora.scheduler.filter.ConstraintFilter.getVeto(ConstraintFilter.java:73) at org.apache.aurora.scheduler.filter.SchedulingFilterImpl$6$1.apply(SchedulingFilterImpl.java:217) at org.apache.aurora.scheduler.filter.SchedulingFilterImpl$6$1.apply(SchedulingFilterImpl.java:209) at org.apache.aurora.scheduler.filter.SchedulingFilterImplTest$1.answer(SchedulingFilterImplTest.java:137) at org.easymock.internal.Result.answer(Result.java:106) at org.easymock.internal.ReplayState.invokeInner(ReplayState.java:60) at org.easymock.internal.ReplayState.invoke(ReplayState.java:46) at org.easymock.internal.MockInvocationHandler.invoke(MockInvocationHandler.java:40) at org.easymock.internal.ObjectMethodsFilter.invoke(ObjectMethodsFilter.java:94) at com.sun.proxy.$Proxy6.weaklyConsistentRead(Unknown Source) at org.apache.aurora.scheduler.filter.SchedulingFilterImpl$6.apply(SchedulingFilterImpl.java:209) at org.apache.aurora.scheduler.filter.SchedulingFilterImpl$6.apply(SchedulingFilterImpl.java:198) at org.apache.aurora.scheduler.filter.SchedulingFilterImpl.filter(SchedulingFilterImpl.java:273) at org.apache.aurora.scheduler.filter.SchedulingFilterImplTest.checkConstraint(SchedulingFilterImplTest.java:518) at org.apache.aurora.scheduler.filter.SchedulingFilterImplTest.checkConstraint(SchedulingFilterImplTest.java:502) at org.apache.aurora.scheduler.filter.SchedulingFilterImplTest.checkConstraint(SchedulingFilterImplTest.java:483)