[ https://issues.apache.org/jira/browse/FLINK-9153?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16452121#comment-16452121 ]
ASF GitHub Bot commented on FLINK-9153: --------------------------------------- Github user zentol commented on a diff in the pull request: https://github.com/apache/flink/pull/5834#discussion_r184032815 --- 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 -- that's...not my point. Currently: 1. You take a port from the range, 2. create a socket to check its availability, 2.a if success, goto 3 2.b if failure, goto 1 3. close the socket, 4. pass port to `createRpcService` 4.a if success, exit 4.b if failure, goto 1 So, why do step 2 and 3 at all? > 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)