You are viewing a plain text version of this content. The canonical link for it is here.
Posted to hdfs-dev@hadoop.apache.org by "Yiqun Lin (JIRA)" <ji...@apache.org> on 2017/06/06 12:18:18 UTC

[jira] [Created] (HDFS-11935) Ozone: TestStorageContainerManager#testRpcPermission fails when ipv6 address used

Yiqun Lin created HDFS-11935:
--------------------------------

             Summary: Ozone: TestStorageContainerManager#testRpcPermission fails when ipv6 address used
                 Key: HDFS-11935
                 URL: https://issues.apache.org/jira/browse/HDFS-11935
             Project: Hadoop HDFS
          Issue Type: Sub-task
          Components: test
    Affects Versions: HDFS-7240
            Reporter: Yiqun Lin
            Assignee: Yiqun Lin


 TestStorageContainerManager#testRpcPermission ran failed when ipv6 address used in my local. The stack infos:
{noformat}
java.lang.IllegalArgumentException: Does not contain a valid host:port authority: 0:0:0:0:0:0:0:0:54846:9863
	at org.apache.hadoop.net.NetUtils.createSocketAddr(NetUtils.java:213)
	at org.apache.hadoop.net.NetUtils.createSocketAddr(NetUtils.java:164)
	at org.apache.hadoop.net.NetUtils.createSocketAddr(NetUtils.java:153)
	at org.apache.hadoop.ozone.OzoneClientUtils.getScmAddressForBlockClients(OzoneClientUtils.java:193)
	at org.apache.hadoop.ozone.ksm.KeySpaceManager.getScmBlockClient(KeySpaceManager.java:117)
	at org.apache.hadoop.ozone.ksm.KeySpaceManager.<init>(KeySpaceManager.java:100)
	at org.apache.hadoop.ozone.MiniOzoneCluster$Builder.build(MiniOzoneCluster.java:373)
	at org.apache.hadoop.ozone.TestStorageContainerManager.testRpcPermissionWithConf(TestStorageContainerManager.java:95)
	at org.apache.hadoop.ozone.TestStorageContainerManager.testRpcPermission(TestStorageContainerManager.java:79)
{noformat}
{{OzoneClientUtils#getHostName}} will return a wrong host name when input value is a ipv6 address.
The root cause of this is that we use {{ListenerAddress}} which can be the Iner6Address or Iner4Address instance}} to update address in {{OzoneClientUtils#updateListenAddress}}.
{code}
  public static InetSocketAddress updateListenAddress(
      OzoneConfiguration conf, String rpcAddressKey,
      InetSocketAddress addr, RPC.Server rpcServer) {
    InetSocketAddress listenAddr = rpcServer.getListenerAddress();
    InetSocketAddress updatedAddr = new InetSocketAddress(
       addr.getHostString(), listenAddr.getPort());
    conf.set(rpcAddressKey,
        listenAddr.getHostString() + ":" + listenAddr.getPort());
    return updatedAddr;
  }
{code}
We can use {{updatedAddr.getHostString() + ":" + listenAddr.getPort()}} to replace {{listenAddr.getHostString() + ":" + listenAddr.getPort()}}.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

---------------------------------------------------------------------
To unsubscribe, e-mail: hdfs-dev-unsubscribe@hadoop.apache.org
For additional commands, e-mail: hdfs-dev-help@hadoop.apache.org