[ 
https://issues.apache.org/jira/browse/HDFS-9444?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15520935#comment-15520935
 ] 

Brahma Reddy Battula commented on HDFS-9444:
--------------------------------------------

I thought only for new method which is following..it's ok to me keep 
consistency with {{ServerSocketUtils#getPort}}
 {code}
public static int[] getPorts(int numPorts) throws IOException {
116         ServerSocket[] sockets = new ServerSocket[numPorts];
117         int[] ports = new int[numPorts];
118         for (int i = 0; i < numPorts; i++) {
119           ServerSocket sock = new ServerSocket(0);
120           sockets[i] = sock;
121           ports[i] = sock.getLocalPort();
122         }
123         for (ServerSocket sock : sockets) {
124           sock.close();
125         }
126         return ports;
127       }
{code}

will wait for commit till [~xiaochen] gives his view on this comment..

> Add utility to find set of available ephemeral ports to ServerSocketUtil
> ------------------------------------------------------------------------
>
>                 Key: HDFS-9444
>                 URL: https://issues.apache.org/jira/browse/HDFS-9444
>             Project: Hadoop HDFS
>          Issue Type: Bug
>            Reporter: Brahma Reddy Battula
>            Assignee: Masatake Iwasaki
>         Attachments: HDFS-9444.001.patch, HDFS-9444.002.patch, 
> HDFS-9444.003.patch, HDFS-9444.004.patch, HDFS-9444.005.patch, 
> HDFS-9444.006.patch
>
>
> Unit tests using MiniDFSCluster with namanode-ha enabled need set of port 
> numbers in advance. Because namenodes talk to each other, we can not set ipc 
> port to 0 in configuration to make namenodes decide port number on its own. 
> ServerSocketUtil should provide utility to find set of available ephemeral 
> port numbers for this.
> For example, TestEditLogTailer could fail due to {{java.net.BindException: 
> Address already in use}}.
> https://builds.apache.org/job/Hadoop-Hdfs-trunk/2556/testReport/
> {noformat}
> java.net.BindException: Problem binding to [localhost:42477] 
> java.net.BindException: Address already in use; For more details see:  
> http://wiki.apache.org/hadoop/BindException
>       at sun.nio.ch.Net.bind0(Native Method)
>       at sun.nio.ch.Net.bind(Net.java:444)
>       at sun.nio.ch.Net.bind(Net.java:436)
>       at 
> sun.nio.ch.ServerSocketChannelImpl.bind(ServerSocketChannelImpl.java:214)
>       at sun.nio.ch.ServerSocketAdaptor.bind(ServerSocketAdaptor.java:74)
>       at org.apache.hadoop.ipc.Server.bind(Server.java:469)
>       at org.apache.hadoop.ipc.Server$Listener.<init>(Server.java:695)
>       at org.apache.hadoop.ipc.Server.<init>(Server.java:2464)
>       at org.apache.hadoop.ipc.RPC$Server.<init>(RPC.java:945)
>       at 
> org.apache.hadoop.ipc.ProtobufRpcEngine$Server.<init>(ProtobufRpcEngine.java:535)
>       at 
> org.apache.hadoop.ipc.ProtobufRpcEngine.getServer(ProtobufRpcEngine.java:510)
>       at org.apache.hadoop.ipc.RPC$Builder.build(RPC.java:787)
>       at 
> org.apache.hadoop.hdfs.server.namenode.NameNodeRpcServer.<init>(NameNodeRpcServer.java:390)
>       at 
> org.apache.hadoop.hdfs.server.namenode.NameNode.createRpcServer(NameNode.java:742)
>       at 
> org.apache.hadoop.hdfs.server.namenode.NameNode.initialize(NameNode.java:680)
>       at 
> org.apache.hadoop.hdfs.server.namenode.NameNode.<init>(NameNode.java:883)
>       at 
> org.apache.hadoop.hdfs.server.namenode.NameNode.<init>(NameNode.java:862)
>       at 
> org.apache.hadoop.hdfs.server.namenode.NameNode.createNameNode(NameNode.java:1564)
>       at 
> org.apache.hadoop.hdfs.MiniDFSCluster.createNameNode(MiniDFSCluster.java:1247)
>       at 
> org.apache.hadoop.hdfs.MiniDFSCluster.configureNameService(MiniDFSCluster.java:1016)
>       at 
> org.apache.hadoop.hdfs.MiniDFSCluster.createNameNodesAndSetConf(MiniDFSCluster.java:891)
>       at 
> org.apache.hadoop.hdfs.MiniDFSCluster.initMiniDFSCluster(MiniDFSCluster.java:823)
>       at org.apache.hadoop.hdfs.MiniDFSCluster.<init>(MiniDFSCluster.java:482)
>       at 
> org.apache.hadoop.hdfs.MiniDFSCluster$Builder.build(MiniDFSCluster.java:441)
>       at 
> org.apache.hadoop.hdfs.server.namenode.ha.TestEditLogTailer.testStandbyTriggersLogRolls(TestEditLogTailer.java:139)
>       at 
> org.apache.hadoop.hdfs.server.namenode.ha.TestEditLogTailer.testNN1TriggersLogRolls(TestEditLogTailer.java:114)
> {noformat}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

---------------------------------------------------------------------
To unsubscribe, e-mail: hdfs-issues-unsubscr...@hadoop.apache.org
For additional commands, e-mail: hdfs-issues-h...@hadoop.apache.org

Reply via email to