hadoop-mapreduce-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Karthik Kambatla (JIRA)" <j...@apache.org>
Subject [jira] [Updated] (MAPREDUCE-5288) ResourceEstimator#getEstimatedTotalMapOutputSize suffers from divide by zero issues
Date Wed, 05 Jun 2013 19:34:22 GMT

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

Karthik Kambatla updated MAPREDUCE-5288:
----------------------------------------

    Attachment: mr-5288-1.patch

Uploading a patch that sets the {{thresholdToUse}} value to at least 1. This value is used
in {{getEstimatedTotalMapOutputSize()}} to decide whether to estimate or not.
                
> ResourceEstimator#getEstimatedTotalMapOutputSize suffers from divide by zero issues
> -----------------------------------------------------------------------------------
>
>                 Key: MAPREDUCE-5288
>                 URL: https://issues.apache.org/jira/browse/MAPREDUCE-5288
>             Project: Hadoop Map/Reduce
>          Issue Type: Bug
>          Components: mrv1
>    Affects Versions: 1.2.0
>            Reporter: Harsh J
>            Assignee: Karthik Kambatla
>         Attachments: mr-5288-1.patch
>
>
> The computation in the above mentioned class-method is below:
> {code}
>       long estimate = Math.round(((double)inputSize * 
>           completedMapsOutputSize * 2.0)/completedMapsInputSize);
> {code}
> Given http://docs.oracle.com/javase/6/docs/api/java/lang/Math.html#round(double), its
possible that the returned estimate could be Long.MAX_VALUE if completedMapsInputSize is determined
to be zero.
> This can be proven with a simple code snippet:
> {code}
> class Foo {
>     public static void main(String... args) {
>         long inputSize = 600L + 2;
>         long estimate = Math.round(((double)inputSize *
>                               1L * 2.0)/0L);
>         System.out.println(estimate);
>     }
> }
> {code}
> The above conveniently prints out: {{9223372036854775807}}, which is Long.MAX_VALUE (or
8 Exbibytes per MapReduce).

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Mime
View raw message