You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@flink.apache.org by "Gabor Gevay (JIRA)" <ji...@apache.org> on 2015/12/13 18:12:46 UTC

[jira] [Created] (FLINK-3166) The first program in ObjectReuseITCase has the wrong expected result, and it succeeds

Gabor Gevay created FLINK-3166:
----------------------------------

             Summary: The first program in ObjectReuseITCase has the wrong expected result, and it succeeds
                 Key: FLINK-3166
                 URL: https://issues.apache.org/jira/browse/FLINK-3166
             Project: Flink
          Issue Type: Bug
            Reporter: Gabor Gevay
            Priority: Critical


The first program in ObjectReuseITCase has the following input:
a,1
a,2
a,3
a,4
a,50
There is a groupBy on field 0, and then a reduce, so the result should be 1+2+3+4+50 = 60. But the hardcoded expected result is 100, and running the Flink program also produces this.

The problem is caused my mismatched assumptions between ReduceCombineDriver.sortAndCombine and the ReduceFunction in the test about object reuse rules of ReduceFunctions:

ReduceCombineDriver.sortAndCombine has the following comment:
"The user function is expected to return the first input as the result."
While the ReduceFunction in the test is modifying and returning the second input. (And the second program in the test also has the same problem.)

I can't find the assumption that is stated in the comment in any documentation. For example, the javadoc of ReduceFunction should make the user aware of this. Or, alternatively, the code of the driver should be modified to not make this assumption. I'm not sure which solution is better.





--
This message was sent by Atlassian JIRA
(v6.3.4#6332)