Details
-
Task
-
Status: Resolved
-
Major
-
Resolution: Fixed
-
None
-
Important
-
Mesosphere Sprint 28
-
3
Description
result.cpus() == cpus() check is failing due to ( double == double ) comparison problem.
Root Cause :
Framework requested 0.1 cpu reservation for the first task. So far so good. Next Reserve operation — lead to double operations resulting in following double values :
results.cpus() : 23.9999999999999964472863211995 cpus() : 24
And the check ( result.cpus() == cpus() ) failed.
The double arithmetic operations caused results.cpus() value to be : 23.9999999999999964472863211995 and hence ( 23.9999999999999964472863211995 == 24 ) failed.
Attachments
Issue Links
- is duplicated by
-
MESOS-3090 Calculated CPU should be rounded
- Resolved
-
MESOS-3518 Assertions that compare doubles with == can fail due to rounding issues and can crash the master.
- Resolved
-
MESOS-3990 Unexpected reservation results due to floating point error
- Accepted
- is related to
-
MESOS-3997 Switch to fixed-point for resources
- Accepted
- relates to
-
MESOS-1187 precision errors with allocation calculations
- Resolved