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)