flink-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "ASF GitHub Bot (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (FLINK-2111) Add "stop" signal to cleanly shutdown streaming jobs
Date Thu, 27 Aug 2015 18:51:45 GMT

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

ASF GitHub Bot commented on FLINK-2111:

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

    --- 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 --
    Well. We know, that stop is only sent to sources, thus, the user function is of type `SourceFunction`.
The `cancel()` method has the following JavaDoc:
    	 * Cancels the source. Most sources will have a while loop inside the
    	 * {@link #run} method. You need to ensure that the source will break out of this loop.
    	 * can be achieved by having a volatile field "isRunning" that is checked in the loop
and that
    	 * is set to false in this method.
    	void cancel();
    I interpreted this a a non-blocking function. Even if this requirement is not specified
explicitly. We could just do this (need to talk to other streaming folk about implication
though). Or we add a new method `stop()` to `SourceFunction`. However, this implies to change
a lot of code... All classes implementing `SourceFunction` need to get extended (this was
another reason why I just used `cancel()`).

> 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,
>            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

View raw message