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

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

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

    https://github.com/apache/flink/pull/750#discussion_r38511039
  
    --- Diff: 
flink-runtime/src/main/scala/org/apache/flink/runtime/taskmanager/TaskManager.scala
 ---
    @@ -411,6 +411,23 @@ class TaskManager(
                 log.debug(s"Cannot find task to fail for execution 
${executionID})")
               }
     
    +        // stops a task
    +        case StopTask(executionID) =>
    +          val task = runningTasks.get(executionID)
    +          if (task != null) {
    +            try {
    +              task.stopExecution()
    --- End diff --
    
    I have to admit that this is the first time I'm looking into this pull 
request ;)
    Regarding the whole blocking / non-blocking discussion: I think even if we 
would write into the javadocs that the cancel()/stop() call has to be 
implemented in a non-blocking fashion, there would be still users who do it 
wrong! Its just too risky to block the entire actor system by erroneous user 
code. (Aren't our windowing threads doing some magic in the close methods as 
well?!)
    I'm think that the canceling of Tasks in the task manager is also done 
using separate cancelling threads?
    
    For the Kafka source: I believe we can move the "fetcher.close()" and 
offsetHandler.close() into the close() method as well. (We would probably need 
to add cancel() method to the Fetcher interface).
    But I would not touch the Kafka consumer and make the stop() mechanism more 
robust.



> 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