Details
-
Improvement
-
Status: Closed
-
Major
-
Resolution: Fixed
-
1.16.0
Description
In local executor, it's not possible to set different values for taskmanager.memory.jvm-overhead.max and taskmanager.memory.jvm-overhead.min. The same problem for taskmanager.memory.network.max and taskmanager.memory.network.min.
Sample code to reproduce:
Configuration conf = new Configuration(); conf.setString(TaskManagerOptions.JVM_OVERHEAD_MIN.key(), "1GB"); conf.setString(TaskManagerOptions.JVM_OVERHEAD_MAX.key(), "2GB"); StreamExecutionEnvironment.createLocalEnvironment(conf) .fromElements("Hello", "World") .executeAndCollect() .forEachRemaining(System.out::println);
The failing exception is something like:
Exception in thread "main" java.lang.IllegalArgumentException
at org.apache.flink.util.Preconditions.checkArgument(Preconditions.java:122)
at org.apache.flink.runtime.taskexecutor.TaskExecutorResourceUtils.calculateTotalProcessMemoryFromComponents(TaskExecutorResourceUtils.java:182)
at org.apache.flink.runtime.taskexecutor.TaskExecutorMemoryConfiguration.create(TaskExecutorMemoryConfiguration.java:119)
I think the problem was that we expect the max and min to equal, but local executor did not reset them correctly?
Attachments
Issue Links
- links to