Uploaded image for project: 'Hadoop HDFS'
  1. Hadoop HDFS
  2. HDFS-11134

Fix bind exception threw in TestRenameWhileOpen

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • None
    • 2.8.0, 3.0.0-alpha2
    • None
    • None
    • Reviewed

    Description

      I found two bind exceptions causing the unit tests fails in history Jenkins buildings. One is test TestRenameWhileOpen, the other one is TestPendingInvalidateBlock.

      Here are the stack infos of TestRenameWhileOpen(I can't find the stack infos of TestPendingInvalidateBlock now since the time of that happened is too early, but I'm sure it has failed due to bind exception.)

      java.net.BindException: Problem binding to [localhost:42155] 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:433)
      	at sun.nio.ch.Net.bind(Net.java:425)
      	at sun.nio.ch.ServerSocketChannelImpl.bind(ServerSocketChannelImpl.java:223)
      	at sun.nio.ch.ServerSocketAdaptor.bind(ServerSocketAdaptor.java:74)
      	at org.apache.hadoop.ipc.Server.bind(Server.java:535)
      	at org.apache.hadoop.ipc.Server$Listener.<init>(Server.java:919)
      	at org.apache.hadoop.ipc.Server.<init>(Server.java:2667)
      	at org.apache.hadoop.ipc.RPC$Server.<init>(RPC.java:959)
      	at org.apache.hadoop.ipc.ProtobufRpcEngine$Server.<init>(ProtobufRpcEngine.java:367)
      	at org.apache.hadoop.ipc.ProtobufRpcEngine.getServer(ProtobufRpcEngine.java:342)
      	at org.apache.hadoop.ipc.RPC$Builder.build(RPC.java:801)
      	at org.apache.hadoop.hdfs.server.namenode.NameNodeRpcServer.<init>(NameNodeRpcServer.java:434)
      	at org.apache.hadoop.hdfs.server.namenode.NameNode.createRpcServer(NameNode.java:796)
      	at org.apache.hadoop.hdfs.server.namenode.NameNode.initialize(NameNode.java:723)
      	at org.apache.hadoop.hdfs.server.namenode.NameNode.<init>(NameNode.java:937)
      	at org.apache.hadoop.hdfs.server.namenode.NameNode.<init>(NameNode.java:916)
      	at org.apache.hadoop.hdfs.server.namenode.NameNode.createNameNode(NameNode.java:1633)
      	at org.apache.hadoop.hdfs.MiniDFSCluster.createNameNode(MiniDFSCluster.java:1263)
      	at org.apache.hadoop.hdfs.MiniDFSCluster.configureNameService(MiniDFSCluster.java:1032)
      	at org.apache.hadoop.hdfs.MiniDFSCluster.createNameNodesAndSetConf(MiniDFSCluster.java:907)
      	at org.apache.hadoop.hdfs.MiniDFSCluster.initMiniDFSCluster(MiniDFSCluster.java:839)
      	at org.apache.hadoop.hdfs.MiniDFSCluster.<init>(MiniDFSCluster.java:491)
      	at org.apache.hadoop.hdfs.MiniDFSCluster$Builder.build(MiniDFSCluster.java:450)
      	at org.apache.hadoop.hdfs.TestRenameWhileOpen.testWhileOpenRenameToNonExistentDirectory(TestRenameWhileOpen.java:325)
      

      Here specifying the namenode port is not necessary, is similar to HDFS-11129. And I have run this test many times in my local, it all passed. This JIRA we are focusing on fix the bind exception threw in TestRenameWhileOpen.

      Attachments

        1. HDFS-11134.001.patch
          7 kB
          Yiqun Lin
        2. HDFS-11134.002.patch
          8 kB
          Yiqun Lin
        3. HDFS-11134.003.patch
          7 kB
          Yiqun Lin

        Issue Links

          Activity

            People

              linyiqun Yiqun Lin
              linyiqun Yiqun Lin
              Votes:
              0 Vote for this issue
              Watchers:
              5 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: