[
https://issues.apache.org/jira/browse/MESOS-3552?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Neil Conway updated MESOS-3552:
-------------------------------
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.
was:
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.
Summary: CHECK failure due to floating point precision on reservation
request (was: Check failed: result.cpus() == cpus() && result.mem() == mem()
&& result.disk() == disk() && result.ports() == ports() )
> CHECK failure due to floating point precision on reservation request
> --------------------------------------------------------------------
>
> Key: MESOS-3552
> URL: https://issues.apache.org/jira/browse/MESOS-3552
> Project: Mesos
> Issue Type: Bug
> Components: master
> Affects Versions: 0.24.1
> Reporter: Mandeep Chadha
> Assignee: Mandeep Chadha
>
> 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.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)