hadoop-mapreduce-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Harsh J (JIRA)" <j...@apache.org>
Subject [jira] [Created] (MAPREDUCE-5288) ResourceEstimator#getEstimatedTotalMapOutputSize suffers from divide by zero issues
Date Sat, 01 Jun 2013 15:42:20 GMT
Harsh J created MAPREDUCE-5288:
----------------------------------

             Summary: 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


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