[ https://issues.apache.org/jira/browse/FLINK-29146?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Shuiqiang Chen updated FLINK-29146: ----------------------------------- Description: Currently, when building an ExecutionGraph, it requires to set the job specific information (like job id, job name, job configuration, etc) and most of them are from JobGraph.But I find that the configuration in JobGraph is a new Configuration instance when the JobGraph is built, and it does not contain any user set configuration. As a result, we are not able retrieve the use specified job configuration in ExecutionGraph built from JobGraph during execution runtime. BTW, in StreamExecutionEnvironment, it seems that job configurations that not contained in built-in options will be ignored when calling StreamExecutionEnvironment.configure(ReadableConfig[, ClassLoader]). However, it will be included when constructing a StreamExecutionEnvironment, which seems a bit inconsistent. Is it by design? {code:java} Configuration configuration = new Configuration(); // These configured string will take effect. configuration.setString("k1", "v1"); configuration.setString("k2", "v2"); configuration.setString("k3", "v3"); configuration.set(HeartbeatManagerOptions.HEARTBEAT_TIMEOUT, 300000L); final StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment(configuration); // These configured string will be ignored. configuration.setString("k4", "v4"); configuration.setString("k5", "v5"); configuration.setString("k6", "v6"); env.configure(configuration); {code} was: Currently, when building an ExecutionGraph, it requires to set the job specific information (like job id, job name, job configuration, etc) and most of them are from JobGraph.But I find that the configuraiton in JobGraph is a new Configuration instance that does not contain any user set configuration. As a result, we are not able retrieve the use specified job configuration in ExecutionGraph built from JobGraph during runtime execution. BTW, in StreamExecutionEnvironment, it seems that job configuraitons that not contained in built-in options will be igored when calling StreamExecutionEnvironment.configure(ReadableConfig[, ClassLoader]). However, it will be included when constructing a StreamExecutionEnvironment, which seems a bit inconsistent. {code:java} Configuration configuration = new Configuration(); // These configured string will take effect. configuration.setString("k1", "v1"); configuration.setString("k2", "v2"); configuration.setString("k3", "v3"); configuration.set(HeartbeatManagerOptions.HEARTBEAT_TIMEOUT, 300000L); final StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment(configuration); // These configured string will be ignored. configuration.setString("k4", "v4"); configuration.setString("k5", "v5"); configuration.setString("k6", "v6"); env.configure(configuration); {code} > User set job configuration can not be retirieved from JobGraph and > ExecutionGraph > --------------------------------------------------------------------------------- > > Key: FLINK-29146 > URL: https://issues.apache.org/jira/browse/FLINK-29146 > Project: Flink > Issue Type: Bug > Affects Versions: 1.16.0 > Reporter: Shuiqiang Chen > Priority: Major > > Currently, when building an ExecutionGraph, it requires to set the job > specific information (like job id, job name, job configuration, etc) and most > of them are from JobGraph.But I find that the configuration in JobGraph is a > new Configuration instance when the JobGraph is built, and it does not > contain any user set configuration. As a result, we are not able retrieve the > use specified job configuration in ExecutionGraph built from JobGraph during > execution runtime. > BTW, in StreamExecutionEnvironment, it seems that job configurations that not > contained in built-in options will be ignored when calling > StreamExecutionEnvironment.configure(ReadableConfig[, ClassLoader]). However, > it will be included when constructing a StreamExecutionEnvironment, which > seems a bit inconsistent. Is it by design? > {code:java} > Configuration configuration = new Configuration(); > // These configured string will take effect. > configuration.setString("k1", "v1"); > configuration.setString("k2", "v2"); > configuration.setString("k3", "v3"); > configuration.set(HeartbeatManagerOptions.HEARTBEAT_TIMEOUT, 300000L); > final StreamExecutionEnvironment env = > StreamExecutionEnvironment.getExecutionEnvironment(configuration); > // These configured string will be ignored. > configuration.setString("k4", "v4"); > configuration.setString("k5", "v5"); > configuration.setString("k6", "v6"); > env.configure(configuration); > {code} -- This message was sent by Atlassian Jira (v8.20.10#820010)