[ 
https://issues.apache.org/jira/browse/FLINK-12351?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16827861#comment-16827861
 ] 

aitozi commented on FLINK-12351:
--------------------------------

Hi, [~jark]

I checked the objectuse config in other operator just now. Found that it's 
mostly been checked in batch related operator. Is only AsyncWaitOperator 
affected?  But i think other operator may be affected too. If user use the 
object reuse feature without paying attention to the side effect of the changes 
on the object as the doc of ExecutionConfig#enableObjectReuse say, the result 
may be unpredictable. Or we have to enable objectReuse to operator level to let 
user config the behaviour of the operator individually, what's your idea?

> AsyncWaitOperator should deep copy StreamElement when object reuse is enabled
> -----------------------------------------------------------------------------
>
>                 Key: FLINK-12351
>                 URL: https://issues.apache.org/jira/browse/FLINK-12351
>             Project: Flink
>          Issue Type: Bug
>            Reporter: Jark Wu
>            Priority: Major
>             Fix For: 1.9.0
>
>
> Currently, AsyncWaitOperator directly put the input StreamElement into 
> {{StreamElementQueue}}. But when object reuse is enabled, the StreamElement 
> is reused, which means the element in {{StreamElementQueue}} will be 
> modified. As a result, the output of AsyncWaitOperator might be wrong.
> An easy way to fix this might be deep copy the input StreamElement when 
> object reuse is enabled, like this: 
> https://github.com/apache/flink/blob/blink/flink-streaming-java/src/main/java/org/apache/flink/streaming/api/operators/async/AsyncWaitOperator.java#L209



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to