[ 
https://issues.apache.org/jira/browse/HDFS-6768?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Arpit Agarwal updated HDFS-6768:
--------------------------------

    Description: 
TestBlockRecovery uses hard-coded port numbers making it susceptible to 'port 
in use' errors [as seen 
here|https://builds.apache.org/job/PreCommit-HDFS-Build/7484//testReport/org.apache.hadoop.hdfs.server.datanode/TestBlockRecovery/testRaceBetweenReplicaRecoveryAndFinalizeBlock/]

{code}
Error Message

Port in use: localhost:50070
Stacktrace

java.net.BindException: Port in use: localhost:50070
        at sun.nio.ch.Net.bind(Native Method)
        at 
sun.nio.ch.ServerSocketChannelImpl.bind(ServerSocketChannelImpl.java:124)
        at sun.nio.ch.ServerSocketAdaptor.bind(ServerSocketAdaptor.java:59)
        at 
org.mortbay.jetty.nio.SelectChannelConnector.open(SelectChannelConnector.java:216)
        at 
org.apache.hadoop.http.HttpServer2.openListeners(HttpServer2.java:853)
        at org.apache.hadoop.http.HttpServer2.start(HttpServer2.java:794)
        at 
org.apache.hadoop.hdfs.server.namenode.NameNodeHttpServer.start(NameNodeHttpServer.java:142)
        at 
org.apache.hadoop.hdfs.server.namenode.NameNode.startHttpServer(NameNode.java:697)
        at 
org.apache.hadoop.hdfs.server.namenode.NameNode.initialize(NameNode.java:587)
        at 
org.apache.hadoop.hdfs.server.namenode.NameNode.<init>(NameNode.java:756)
        at 
org.apache.hadoop.hdfs.server.namenode.NameNode.<init>(NameNode.java:740)
        at 
org.apache.hadoop.hdfs.server.namenode.NameNode.createNameNode(NameNode.java:1425)
        at 
org.apache.hadoop.hdfs.MiniDFSCluster.createNameNode(MiniDFSCluster.java:1007)
        at 
org.apache.hadoop.hdfs.MiniDFSCluster.createNameNodesAndSetConf(MiniDFSCluster.java:878)
        at 
org.apache.hadoop.hdfs.MiniDFSCluster.initMiniDFSCluster(MiniDFSCluster.java:707)
        at org.apache.hadoop.hdfs.MiniDFSCluster.<init>(MiniDFSCluster.java:378)
        at 
org.apache.hadoop.hdfs.MiniDFSCluster$Builder.build(MiniDFSCluster.java:359)
        at 
org.apache.hadoop.hdfs.server.datanode.TestBlockRecovery.testRaceBetweenReplicaRecoveryAndFinalizeBlock(TestBlockRecovery.java:592)
{code}

TestRefreshCallQueue and TestGenericRefresh also use the same hard-coded port 
number (54222) which can result in 'port in use' errors with parallel-tests.

  was:
TestBlockRecovery uses hard-coded port numbers making it susceptible to 'port 
in use' errors [as seen 
here|https://builds.apache.org/job/PreCommit-HDFS-Build/7484//testReport/org.apache.hadoop.hdfs.server.datanode/TestBlockRecovery/testRaceBetweenReplicaRecoveryAndFinalizeBlock/]

{code}
Error Message

Port in use: localhost:50070
Stacktrace

java.net.BindException: Port in use: localhost:50070
        at sun.nio.ch.Net.bind(Native Method)
        at 
sun.nio.ch.ServerSocketChannelImpl.bind(ServerSocketChannelImpl.java:124)
        at sun.nio.ch.ServerSocketAdaptor.bind(ServerSocketAdaptor.java:59)
        at 
org.mortbay.jetty.nio.SelectChannelConnector.open(SelectChannelConnector.java:216)
        at 
org.apache.hadoop.http.HttpServer2.openListeners(HttpServer2.java:853)
        at org.apache.hadoop.http.HttpServer2.start(HttpServer2.java:794)
        at 
org.apache.hadoop.hdfs.server.namenode.NameNodeHttpServer.start(NameNodeHttpServer.java:142)
        at 
org.apache.hadoop.hdfs.server.namenode.NameNode.startHttpServer(NameNode.java:697)
        at 
org.apache.hadoop.hdfs.server.namenode.NameNode.initialize(NameNode.java:587)
        at 
org.apache.hadoop.hdfs.server.namenode.NameNode.<init>(NameNode.java:756)
        at 
org.apache.hadoop.hdfs.server.namenode.NameNode.<init>(NameNode.java:740)
        at 
org.apache.hadoop.hdfs.server.namenode.NameNode.createNameNode(NameNode.java:1425)
        at 
org.apache.hadoop.hdfs.MiniDFSCluster.createNameNode(MiniDFSCluster.java:1007)
        at 
org.apache.hadoop.hdfs.MiniDFSCluster.createNameNodesAndSetConf(MiniDFSCluster.java:878)
        at 
org.apache.hadoop.hdfs.MiniDFSCluster.initMiniDFSCluster(MiniDFSCluster.java:707)
        at org.apache.hadoop.hdfs.MiniDFSCluster.<init>(MiniDFSCluster.java:378)
        at 
org.apache.hadoop.hdfs.MiniDFSCluster$Builder.build(MiniDFSCluster.java:359)
        at 
org.apache.hadoop.hdfs.server.datanode.TestBlockRecovery.testRaceBetweenReplicaRecoveryAndFinalizeBlock(TestBlockRecovery.java:592)
{code}


> TestBlockRecovery, TestRefreshCallQueue and TestGenericRefresh should use 
> ephemeral ports
> -----------------------------------------------------------------------------------------
>
>                 Key: HDFS-6768
>                 URL: https://issues.apache.org/jira/browse/HDFS-6768
>             Project: Hadoop HDFS
>          Issue Type: Bug
>          Components: test
>    Affects Versions: 2.5.0
>            Reporter: Arpit Agarwal
>
> TestBlockRecovery uses hard-coded port numbers making it susceptible to 'port 
> in use' errors [as seen 
> here|https://builds.apache.org/job/PreCommit-HDFS-Build/7484//testReport/org.apache.hadoop.hdfs.server.datanode/TestBlockRecovery/testRaceBetweenReplicaRecoveryAndFinalizeBlock/]
> {code}
> Error Message
> Port in use: localhost:50070
> Stacktrace
> java.net.BindException: Port in use: localhost:50070
>       at sun.nio.ch.Net.bind(Native Method)
>       at 
> sun.nio.ch.ServerSocketChannelImpl.bind(ServerSocketChannelImpl.java:124)
>       at sun.nio.ch.ServerSocketAdaptor.bind(ServerSocketAdaptor.java:59)
>       at 
> org.mortbay.jetty.nio.SelectChannelConnector.open(SelectChannelConnector.java:216)
>       at 
> org.apache.hadoop.http.HttpServer2.openListeners(HttpServer2.java:853)
>       at org.apache.hadoop.http.HttpServer2.start(HttpServer2.java:794)
>       at 
> org.apache.hadoop.hdfs.server.namenode.NameNodeHttpServer.start(NameNodeHttpServer.java:142)
>       at 
> org.apache.hadoop.hdfs.server.namenode.NameNode.startHttpServer(NameNode.java:697)
>       at 
> org.apache.hadoop.hdfs.server.namenode.NameNode.initialize(NameNode.java:587)
>       at 
> org.apache.hadoop.hdfs.server.namenode.NameNode.<init>(NameNode.java:756)
>       at 
> org.apache.hadoop.hdfs.server.namenode.NameNode.<init>(NameNode.java:740)
>       at 
> org.apache.hadoop.hdfs.server.namenode.NameNode.createNameNode(NameNode.java:1425)
>       at 
> org.apache.hadoop.hdfs.MiniDFSCluster.createNameNode(MiniDFSCluster.java:1007)
>       at 
> org.apache.hadoop.hdfs.MiniDFSCluster.createNameNodesAndSetConf(MiniDFSCluster.java:878)
>       at 
> org.apache.hadoop.hdfs.MiniDFSCluster.initMiniDFSCluster(MiniDFSCluster.java:707)
>       at org.apache.hadoop.hdfs.MiniDFSCluster.<init>(MiniDFSCluster.java:378)
>       at 
> org.apache.hadoop.hdfs.MiniDFSCluster$Builder.build(MiniDFSCluster.java:359)
>       at 
> org.apache.hadoop.hdfs.server.datanode.TestBlockRecovery.testRaceBetweenReplicaRecoveryAndFinalizeBlock(TestBlockRecovery.java:592)
> {code}
> TestRefreshCallQueue and TestGenericRefresh also use the same hard-coded port 
> number (54222) which can result in 'port in use' errors with parallel-tests.



--
This message was sent by Atlassian JIRA
(v6.2#6252)

Reply via email to