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

ASF GitHub Bot commented on FLINK-5762:
---------------------------------------

GitHub user kl0u opened a pull request:

    https://github.com/apache/flink/pull/3291

    [FLINK-5762] Protect initializeState() and open() by the same lock

    The description is in the related jira: 
    
    https://issues.apache.org/jira/browse/FLINK-5762


You can merge this pull request into a Git repository by running:

    $ git pull https://github.com/kl0u/flink init-state-lock

Alternatively you can review and apply these changes as the patch at:

    https://github.com/apache/flink/pull/3291.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 #3291
    
----
commit 3b2806895a433a1cf87bda43dd50fd102d2e9b6d
Author: kl0u <[email protected]>
Date:   2017-02-09T15:02:27Z

    [FLINK-5762] Protect initializeState() and open() by the same lock

----


> Protect initializeState() and open() by the same lock.
> ------------------------------------------------------
>
>                 Key: FLINK-5762
>                 URL: https://issues.apache.org/jira/browse/FLINK-5762
>             Project: Flink
>          Issue Type: Bug
>          Components: DataStream API
>    Affects Versions: 1.3.0
>            Reporter: Kostas Kloudas
>            Assignee: Kostas Kloudas
>             Fix For: 1.3.0
>
>
> Currently the initializeState() of all operators in a task is called without 
> the checkpoint lock, and before the open(). This may lead to problematic 
> situations as the following:
> In the case that we retrieve timers from a checkpoint, e.g. WindowOperator 
> and (future) CEP, if we re-register them in the initializeState(), then if 
> they fire before the open() of the downstream operators is called, we will 
> have a task failure, as the downstream channels are not open.
> To avoid this, we can put the initializeState() in the same lock as the 
> open(), and the two operations will happen while being protected by the same 
> lock, which also keeps timers from firing.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

Reply via email to