[ https://issues.apache.org/jira/browse/FLINK-2111?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14713524#comment-14713524 ]
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_r37988485 --- Diff: flink-contrib/flink-storm-compatibility/flink-storm-compatibility-core/src/main/java/org/apache/flink/stormcompatibility/api/FlinkClient.java --- @@ -205,30 +205,32 @@ public void killTopology(final String name) throws NotAliveException { public void killTopologyWithOpts(final String name, final KillOptions options) throws NotAliveException { final JobID jobId = this.getTopologyJobId(name); if (jobId == null) { - throw new NotAliveException(); + throw new NotAliveException("Storm topology with name " + name + " not found."); } - try { - final ActorRef jobManager = this.getJobManager(); - - if (options != null) { - try { - Thread.sleep(1000 * options.get_wait_secs()); - } catch (final InterruptedException e) { - throw new RuntimeException(e); - } - } - - final FiniteDuration askTimeout = this.getTimeout(); - final Future<Object> response = Patterns.ask(jobManager, new CancelJob(jobId), new Timeout(askTimeout)); + if (options != null) { try { - Await.result(response, askTimeout); - } catch (final Exception e) { - throw new RuntimeException("Killing topology " + name + " with Flink job ID " + jobId + " failed", e); + Thread.sleep(1000 * options.get_wait_secs()); + } catch (final InterruptedException e) { + throw new RuntimeException(e); } - } catch (final IOException e) { - throw new RuntimeException("Could not connect to Flink JobManager with address " + this.jobManagerHost - + ":" + this.jobManagerPort, e); + } + + final Configuration configuration = GlobalConfiguration.getConfiguration(); + configuration.setString(ConfigConstants.JOB_MANAGER_IPC_ADDRESS_KEY, this.jobManagerHost); + configuration.setInteger(ConfigConstants.JOB_MANAGER_IPC_PORT_KEY, this.jobManagerPort); + + final Client client; + try { + client = new Client(configuration, JobWithJars.class.getClassLoader()); + } catch (final UnknownHostException e) { + throw new RuntimeException("Cannot execute job due to UnknownHostException", e); + } + + try { + client.stop(jobId); + } catch (final ProgramStopException e) { + throw new RuntimeException("Cannot execute job due to ProgramInvocationException", e); --- End diff -- You've received a `ProgramStopException` and not a `ProgramInvocationException`. > 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)