[ https://issues.apache.org/jira/browse/FLINK-6394?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15990543#comment-15990543 ]
ASF GitHub Bot commented on FLINK-6394: --------------------------------------- GitHub user KurtYoung opened a pull request: https://github.com/apache/flink/pull/3803 [FLINK-6394] [runtime] Respect object reuse configuration when execut… …ing group combining function You can merge this pull request into a Git repository by running: $ git pull https://github.com/KurtYoung/flink flink-6394 Alternatively you can review and apply these changes as the patch at: https://github.com/apache/flink/pull/3803.patch To close this pull request, make a commit to your master/trunk branch with (at least) the following in the commit message: This closes #3803 ---- commit 3f81f60603940ec2b26e81814224b69ae40afcc0 Author: Kurt Young <ykt...@gmail.com> Date: 2017-04-30T08:56:00Z [FLINK-6394] [runtime] Respect object reuse configuration when executing group combining function ---- > GroupCombine reuses instances even though object reuse is disabled > ------------------------------------------------------------------ > > Key: FLINK-6394 > URL: https://issues.apache.org/jira/browse/FLINK-6394 > Project: Flink > Issue Type: Bug > Affects Versions: 1.2.0 > Reporter: Jaromir Vanek > Assignee: Kurt Young > Priority: Critical > > I am using group combiner in DataSet API with disabled object reuse. > In code it may be expressed as follows: > {code:java} > tuples.groupBy(1) > .combineGroup((it, collector) -> { > // store first item for future use > Pojo stored = it.next(); > while (it.hasNext()) { > .... > } > }) > {code} > It seems even the object reuse feature is disabled, my instance is actually > replaced when {{.next()}} is called on the iterator. It leads to very > confusing and wrong results. > I checked the Flink codebase and it seems {{CombiningUnilateralSortMerger}} > is actually reusing object instances even though object reuse is explicitly > disabled. > In spilling phase user's combiner is called with instance of > {{CombineValueIterator}} that actually reuses instances without any warning. > See > https://github.com/apache/flink/blob/d7b59d761601baba6765bb4fc407bcd9fd6a9387/flink-runtime/src/main/java/org/apache/flink/runtime/operators/sort/CombiningUnilateralSortMerger.java#L550 > When I disable combiner and use {{groupReduce}} only with the same reduce > function, results are fine. > Please let me know if you can confirm this as a bug. From my point of view > it's highly critical as I am getting unpredictable results. -- This message was sent by Atlassian JIRA (v6.3.15#6346)