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

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

Github user tillrohrmann commented on a diff in the pull request:

    https://github.com/apache/flink/pull/750#discussion_r49462409
  
    --- Diff: 
flink-runtime/src/main/java/org/apache/flink/runtime/taskmanager/Task.java ---
    @@ -742,10 +743,38 @@ private void notifyFatalError(String message, 
Throwable cause) {
        }
     
        // 
----------------------------------------------------------------------------------------------------------------
    -   //  Canceling / Failing the task from the outside
    +   //  Stopping / Canceling / Failing the task from the outside
        // 
----------------------------------------------------------------------------------------------------------------
     
        /**
    +    * Stops the executing task by calling {@link Stoppable#stop()}.
    +    * <p>
    +    * This method never blocks.
    +    * </p>
    +    * 
    +    * @throws UnsupportedOperationException
    +    *             if the {@link AbstractInvokable} does not implement 
{@link Stoppable}
    +    */
    +   public void stopExecution() throws UnsupportedOperationException {
    +           LOG.info("Attempting to stop task " + taskNameWithSubtask);
    +           if(this.invokable instanceof Stoppable) {
    +                   Runnable runnable = new Runnable() {
    +                           @Override
    +                           public void run() {
    +                                   try {
    +                                           
((Stoppable)Task.this.invokable).stop();
    +                                   } catch(RuntimeException e) {
    +                                           LOG.error("Stopping task " + 
taskNameWithSubtask + " failed.", e);
    --- End diff --
    
    Shouldn't a `RuntimeException` cause the task to fail? We should notify the 
`JobManager` about this and fail the corresponding task. E.g. we could send a 
`FailTask` message to the `TaskManager` to fail the task.


> Add "stop" signal to cleanly shutdown streaming jobs
> ----------------------------------------------------
>
>                 Key: FLINK-2111
>                 URL: https://issues.apache.org/jira/browse/FLINK-2111
>             Project: Flink
>          Issue Type: Improvement
>          Components: Distributed Runtime, JobManager, Local Runtime, 
> Streaming, TaskManager, Webfrontend
>            Reporter: Matthias J. Sax
>            Assignee: Matthias J. Sax
>            Priority: Minor
>
> Currently, streaming jobs can only be stopped using "cancel" command, what is 
> a "hard" stop with no clean shutdown.
> The new introduced "stop" signal, will only affect streaming source tasks 
> such that the sources can stop emitting data and shutdown cleanly, resulting 
> in a clean shutdown of the whole streaming job.
> This feature is a pre-requirment for 
> https://issues.apache.org/jira/browse/FLINK-1929



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to