You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@flink.apache.org by "Kostas Kloudas (JIRA)" <ji...@apache.org> on 2017/02/09 15:01:41 UTC
[jira] [Created] (FLINK-5762) Execute initializeState() and open()
"atomically"
Kostas Kloudas created FLINK-5762:
-------------------------------------
Summary: Execute initializeState() and open() "atomically"
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)