You are viewing a plain text version of this content. The canonical link for it is here.
Posted to common-issues@hadoop.apache.org by "Aaron T. Myers (JIRA)" <ji...@apache.org> on 2013/06/03 20:27:20 UTC

[jira] [Updated] (HADOOP-9617) HA HDFS client is too strict with validating URI authorities

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

Aaron T. Myers updated HADOOP-9617:
-----------------------------------

    Attachment: HADOOP-9617.patch

The attached patch addresses the issue by changing FileSystem#checkPath to check if the passed-in path does not contain a port but this FS URI does contain a port. In this case, the default port is added to the provided Path's authority before checking for equality of the authorities.
                
> HA HDFS client is too strict with validating URI authorities
> ------------------------------------------------------------
>
>                 Key: HADOOP-9617
>                 URL: https://issues.apache.org/jira/browse/HADOOP-9617
>             Project: Hadoop Common
>          Issue Type: Bug
>          Components: fs, ha
>    Affects Versions: 2.0.5-alpha
>            Reporter: Aaron T. Myers
>            Assignee: Aaron T. Myers
>         Attachments: HADOOP-9617.patch
>
>
> HADOOP-9150 changed the way FS URIs are handled to prevent attempted DNS resolution of logical URIs. This has the side effect of changing the way Paths are verified when passed to a FileSystem instance created with an authority that differs from the authority of the Path. Previous to HADOOP-9150, a default port would be added to either authority in the event that either URI did not have a port. Post HADOOP-9150, no default port is added. This means that a FileSystem instance created using the URI "hdfs://ha-logical-uri:8020" will no longer process paths containing just the authority "hdfs://ha-logical-uri", and will throw an error like the following:
> {noformat}
> java.lang.IllegalArgumentException: Wrong FS: hdfs://ns1/user/hive/warehouse/sample_07/sample_07.csv, expected: hdfs://ns1:8020
> 	at org.apache.hadoop.fs.FileSystem.checkPath(FileSystem.java:625)
> 	at org.apache.hadoop.hdfs.DistributedFileSystem.getPathName(DistributedFileSystem.java:173)
> 	at org.apache.hadoop.hdfs.DistributedFileSystem.open(DistributedFileSystem.java:249)
> 	at org.apache.hadoop.hdfs.DistributedFileSystem.open(DistributedFileSystem.java:82)
> {noformat}
> Though this is not necessarily incorrect behavior, it is a backward-incompatible change that at least breaks certain clients' ability to connect to an HA HDFS cluster.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira