[ https://issues.apache.org/jira/browse/FLINK-9153?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16452132#comment-16452132 ]
ASF GitHub Bot commented on FLINK-9153: --------------------------------------- Github user yanghua commented on a diff in the pull request: https://github.com/apache/flink/pull/5834#discussion_r184034826 --- Diff: flink-runtime/src/main/java/org/apache/flink/runtime/taskexecutor/TaskManagerRunner.java --- @@ -355,13 +359,53 @@ public static RpcService createRpcService( taskManagerHostname, taskManagerAddress.getHostAddress()); } - final int rpcPort = configuration.getInteger(ConfigConstants.TASK_MANAGER_IPC_PORT_KEY, 0); + final String portRangeDefinition = configuration.getString(TaskManagerOptions.RPC_PORT, "0"); - checkState(rpcPort >= 0 && rpcPort <= 65535, "Invalid value for " + - "'%s' (port for the TaskManager actor system) : %d - Leave config parameter empty or " + - "use 0 to let the system choose port automatically.", - ConfigConstants.TASK_MANAGER_IPC_PORT_KEY, rpcPort); + // parse port range definition and create port iterator + Iterator<Integer> portsIterator; + try { + portsIterator = NetUtils.getPortRangeFromString(portRangeDefinition); + } catch (Exception e) { + throw new IllegalArgumentException("Invalid port range definition: " + portRangeDefinition); + } + + while (portsIterator.hasNext()) { + // first, we check if the port is available by opening a socket + // if the actor system fails to start on the port, we try further + ServerSocket availableSocket = NetUtils.createSocketFromPorts( --- End diff -- it pick a available port and check it is not be applied. these logic is refered to the exists logic. And the jm, tm also support the port range. > TaskManagerRunner should support rpc port range > ----------------------------------------------- > > Key: FLINK-9153 > URL: https://issues.apache.org/jira/browse/FLINK-9153 > Project: Flink > Issue Type: Bug > Components: TaskManager > Affects Versions: 1.4.0, 1.5.0 > Reporter: vinoyang > Assignee: vinoyang > Priority: Major > Fix For: 1.5.0 > > > TaskManagerRunner current just support one specific port : > {code:java} > final int rpcPort = > configuration.getInteger(ConfigConstants.TASK_MANAGER_IPC_PORT_KEY, 0); > {code} > It should support port range as the document described : > https://ci.apache.org/projects/flink/flink-docs-master/ops/config.html#taskmanager-rpc-port > -- This message was sent by Atlassian JIRA (v7.6.3#76005)