[ https://issues.apache.org/jira/browse/HDFS-6092?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13931669#comment-13931669 ]
haosdent commented on HDFS-6092: -------------------------------- [~te...@apache.org] I think add this to HBase is well, but it maybe some trick if we add this to HDFS. Because I think we should fix this at the source of problem in HDFS. {code} String str = uri.getScheme()+"://"+uri.getAuthority(); this.uri = URI.create(str); if (uri.getPort() == -1) { String svcName = this.dfs.getCanonicalServiceName(); int idx = svcName.indexOf(':'); if (idx > 0) { str = str + svcName.substring(idx); this.uri = URI.create(str); } } {code} > DistributedFileSystem#getCanonicalServiceName() and > DistributedFileSystem#getUri() may return inconsistent results w.r.t. port > ------------------------------------------------------------------------------------------------------------------------------ > > Key: HDFS-6092 > URL: https://issues.apache.org/jira/browse/HDFS-6092 > Project: Hadoop HDFS > Issue Type: Bug > Affects Versions: 2.3.0 > Reporter: Ted Yu > Attachments: haosdent-HDFS-6092.patch, hdfs-6092-v1.txt, > hdfs-6092-v2.txt > > > I discovered this when working on HBASE-10717 > Here is sample code to reproduce the problem: > {code} > Path desPath = new Path("hdfs://127.0.0.1/"); > FileSystem desFs = desPath.getFileSystem(conf); > > String s = desFs.getCanonicalServiceName(); > URI uri = desFs.getUri(); > {code} > Canonical name string contains the default port - 8020 > But uri doesn't contain port. > This would result in the following exception: > {code} > testIsSameHdfs(org.apache.hadoop.hbase.util.TestFSHDFSUtils) Time elapsed: > 0.001 sec <<< ERROR! > java.lang.IllegalArgumentException: port out of range:-1 > at java.net.InetSocketAddress.checkPort(InetSocketAddress.java:143) > at java.net.InetSocketAddress.<init>(InetSocketAddress.java:224) > at > org.apache.hadoop.hbase.util.FSHDFSUtils.getNNAddresses(FSHDFSUtils.java:88) > {code} > Thanks to Brando Li who helped debug this. -- This message was sent by Atlassian JIRA (v6.2#6252)