[ https://issues.apache.org/jira/browse/FLINK-6296?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Petr Novotnik updated FLINK-6296: --------------------------------- Description: 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()}}? >From a [code >perspective](https://github.com/apache/flink/blob/release-1.1.5/flink-clients/src/main/java/org/apache/flink/client/program/ContextEnvironment.java#L68), > it seems the same is present on Flink 1.1.5, but I haven't tested it, P. was: 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. > 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()}}? > From a [code > perspective](https://github.com/apache/flink/blob/release-1.1.5/flink-clients/src/main/java/org/apache/flink/client/program/ContextEnvironment.java#L68), > it seems the same is present on Flink 1.1.5, but I haven't tested it, > P. -- This message was sent by Atlassian JIRA (v6.3.15#6346)