You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@flink.apache.org by "Wei-Che Wei (JIRA)" <ji...@apache.org> on 2018/03/19 07:56:00 UTC

[jira] [Commented] (FLINK-4714) Set task state to RUNNING after state has been restored

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

Wei-Che Wei commented on FLINK-4714:
------------------------------------

Hi [~till.rohrmann]
Since FLINK-5982 has been merged, I would like to go back to this work.
As we discussed before, I prepared to move those initialization part before {{isRunning = true;}} to the {{StreamTask}}'s constructor.

However, I found that it didn't work as I thought.
First, I can't move {{StreamTask#initializeState()}} to the constructor, because it would fail {{InterruptSensitiveRestoreTest}}.
I think the reason is due to that the constructor was blocked and had not been created, so that {{TaskCanceler}} couldn't stop it by calling {{StreamTask#cancel()}}.
Second, {{StreamTask#init()}} can't be moved to constructor as well, because {{spotbugs-maven-plugin}} will make compilation failed due to {{UR_UNINIT_READ_CALLED_FROM_SUPER_CONSTRUCTOR}}.

I have no idea how I could make all of them work in the {{StreamTask}}'s constructor, so I will prefer to turn into the original discussion: adding a {{initialization}} or {{open}} method.
What do you think? Please advise me if I made any mistake. Thank you.

This is my [repo|https://github.com/tony810430/flink/tree/FLINK-4714-WIP].

> Set task state to RUNNING after state has been restored
> -------------------------------------------------------
>
>                 Key: FLINK-4714
>                 URL: https://issues.apache.org/jira/browse/FLINK-4714
>             Project: Flink
>          Issue Type: Improvement
>          Components: Distributed Coordination, State Backends, Checkpointing
>    Affects Versions: 1.2.0
>            Reporter: Till Rohrmann
>            Assignee: Wei-Che Wei
>            Priority: Major
>
> The task state is set to {{RUNNING}} as soon as the {{Task}} is executed. That, however, happens before the state of the {{StreamTask}} invokable has been restored. As a result, the {{CheckpointCoordinator}} starts to trigger checkpoints even though the {{StreamTask}} is not ready.
> In order to avoid aborting checkpoints and properly start it, we should switch the task state to {{RUNNING}} after the state has been restored.



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