Liu created FLINK-32023: --------------------------- Summary: execution.buffer-timeout cannot be set to -1 ms Key: FLINK-32023 URL: https://issues.apache.org/jira/browse/FLINK-32023 Project: Flink Issue Type: Improvement Components: API / DataStream Reporter: Liu
The desc for execution.buffer-timeout is as following: {code:java} public static final ConfigOption<Duration> BUFFER_TIMEOUT = ConfigOptions.key("execution.buffer-timeout") .durationType() .defaultValue(Duration.ofMillis(100)) .withDescription( Description.builder() .text( "The maximum time frequency (milliseconds) for the flushing of the output buffers. By default " + "the output buffers flush frequently to provide low latency and to aid smooth developer " + "experience. Setting the parameter can result in three logical modes:") .list( text( "A positive value triggers flushing periodically by that interval"), text( FLUSH_AFTER_EVERY_RECORD + " triggers flushing after every record thus minimizing latency"), text( DISABLED_NETWORK_BUFFER_TIMEOUT + " ms triggers flushing only when the output buffer is full thus maximizing " + "throughput")) .build()); {code} When we set execution.buffer-timeout to -1 ms, the following error is reported: {code:java} Caused by: java.lang.IllegalArgumentException: Could not parse value '-1 ms' for key 'execution.buffer-timeout'. at org.apache.flink.configuration.Configuration.getOptional(Configuration.java:856) at org.apache.flink.streaming.api.environment.StreamExecutionEnvironment.configure(StreamExecutionEnvironment.java:822) at org.apache.flink.streaming.api.environment.StreamExecutionEnvironment.<init>(StreamExecutionEnvironment.java:224) at org.apache.flink.streaming.api.environment.StreamContextEnvironment.<init>(StreamContextEnvironment.java:51) at org.apache.flink.streaming.api.environment.StreamExecutionEnvironment.createStreamExecutionEnvironment(StreamExecutionEnvironment.java:1996) at java.util.Optional.orElseGet(Optional.java:267) at org.apache.flink.streaming.api.environment.StreamExecutionEnvironment.getExecutionEnvironment(StreamExecutionEnvironment.java:1986) at com.kuaishou.flink.examples.api.WordCount.main(WordCount.java:27) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.apache.flink.client.program.PackagedProgram.callMainMethod(PackagedProgram.java:327) ... 11 more Caused by: java.lang.NumberFormatException: text does not start with a number at org.apache.flink.util.TimeUtils.parseDuration(TimeUtils.java:78) at org.apache.flink.configuration.Configuration.convertToDuration(Configuration.java:1058) at org.apache.flink.configuration.Configuration.convertValue(Configuration.java:996) at org.apache.flink.configuration.Configuration.lambda$getOptional$2(Configuration.java:853) at java.util.Optional.map(Optional.java:215) at org.apache.flink.configuration.Configuration.getOptional(Configuration.java:853) ... 23 more {code} The reason is that the value for Duration can not be negative. We should change the behavior or support to trigger flushing only when the output buffer is full. -- This message was sent by Atlassian Jira (v8.20.10#820010)