[
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:
--------------------------------
[[email protected]] 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)