Petr Novotnik created FLINK-6296: ------------------------------------ Summary: Retrieving execution plan fails succeeding execution attempt Key: FLINK-6296 URL: https://issues.apache.org/jira/browse/FLINK-6296 Project: Flink Issue Type: Bug Components: DataSet API, Job-Submission, YARN Affects Versions: 1.2.0 Reporter: Petr Novotnik
Hello, calling {{ExecutionEnvironment#getExecutionPlan()}} prior to {{ExecutionEnvironment#execute()}} makes the later fail with the following message if I try to run my job on yarn, i.e. {{flink run -m yarn-cluster ...}}: {noformat} > Caused by: java.lang.RuntimeException: No new data sinks have been defined > since the last execution. The last execution refers to the latest call to > 'execute()', 'count()', 'collect()', or 'print()'. > at > org.apache.flink.api.java.ExecutionEnvironment.createProgramPlan(ExecutionEnvironment.java:1050) > at > org.apache.flink.api.java.ExecutionEnvironment.createProgramPlan(ExecutionEnvironment.java:1032) > at > org.apache.flink.client.program.ContextEnvironment.execute(ContextEnvironment.java:59) > at > org.apache.flink.api.java.ExecutionEnvironment.execute(ExecutionEnvironment.java:926) {noformat} It works fine when executing the job locally (and it works fine locally or even on yarn using the DataStream API, i.e. {{StreamExecutionEnvironment}}). So far I could track it down, the problem seems the "clearing" behaviour of {{ContextEnvironment#createProgramPlan(..)}}. This makes me wonder why {{#getExecutionPlan}} uses the one parameter version of {{#createProgramPlan(..)}}. Is "clearing" the sinks really required as part of {{getExecutionPlan()}}? I just check, in Flink 1.1.5, {{#getExecutionPlan(..)}} invokes {{#createProgramPlan("unnamed job", false)}}, hence, it would be good to document as a breaking change [in the migration guide|https://ci.apache.org/projects/flink/flink-docs-release-1.2/ops/upgrading.html] since the resulting error message is rather misleading. P. -- This message was sent by Atlassian JIRA (v6.3.15#6346)