fa zheng created FLINK-14560:
--------------------------------
Summary: The value of taskmanager.memory.size in flink-conf.yaml is set to zero will cause taskmanager not to work
Key: FLINK-14560
URL:
https://issues.apache.org/jira/browse/FLINK-14560 Project: Flink
Issue Type: Bug
Components: Deployment / YARN
Affects Versions: 1.9.1, 1.9.0
Reporter: fa zheng
Fix For: 1.10.0, 1.9.2
If you accidentally set taskmanager.memory.size: 0 in flink-conf.yaml, flink should take a fixed ratio with respect to the size of the task manager JVM. The relateted codes are in TaskManagerServicesConfiguration.fromConfiguration
{code:java}
//代码占位符
// extract memory settings
long configuredMemory;
String managedMemorySizeDefaultVal = TaskManagerOptions.MANAGED_MEMORY_SIZE.defaultValue();
if (!configuration.getString(TaskManagerOptions.MANAGED_MEMORY_SIZE).equals(managedMemorySizeDefaultVal)) {
try {
configuredMemory = MemorySize.parse(configuration.getString(TaskManagerOptions.MANAGED_MEMORY_SIZE), MEGA_BYTES).getMebiBytes();
} catch (IllegalArgumentException e) {
throw new IllegalConfigurationException(
"Could not read " + TaskManagerOptions.MANAGED_MEMORY_SIZE.key(), e);
}
} else {
configuredMemory = Long.valueOf(managedMemorySizeDefaultVal);
}{code}
However, in FlinkYarnSessionCli.java, flink will translate the value to byte.
{code:java}
//代码占位符
// JobManager Memory
final int jobManagerMemoryMB = ConfigurationUtils.getJobManagerHeapMemory(configuration).getMebiBytes();
// Task Managers memory
final int taskManagerMemoryMB = ConfigurationUtils.getTaskManagerHeapMemory(configuration).getMebiBytes();
{code}
As a result, 0 will translate to 0 b and is different from default value. 0 b will cause a error in following check code
{code:java}
//代码占位符
checkConfigParameter(
configuration.getString(TaskManagerOptions.MANAGED_MEMORY_SIZE).equals(TaskManagerOptions.MANAGED_MEMORY_SIZE.defaultValue()) ||
configuredMemory > 0, configuredMemory,
TaskManagerOptions.MANAGED_MEMORY_SIZE.key(),
"MemoryManager needs at least one MB of memory. " +
"If you leave this config parameter empty, the system automatically " +
"pick a fraction of the available memory.");
{code}
--
This message was sent by Atlassian Jira
(v8.3.4#803005)