[
https://issues.apache.org/jira/browse/HDFS-5482?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13817704#comment-13817704
]
Colin Patrick McCabe commented on HDFS-5482:
--------------------------------------------
Yeah, you're absolutely right. It looks like we already try to do that in
{{DistributedFileSystem#listDirectives}} by calling {{makeQualified}}, but
there is an error in the parameters given to that function which is preventing
it from working as expected. (It should be passing the working directory.) We
should probably just change it to use {{makeQualified}} for consistency with
the other functions in {{DistributedFileSystem.java}}. And you're right, this
was a regression introduced by 5326. It will be good to have a unit test for
this.
> DistributedFileSystem#listPathBasedCacheDirectives must support relative paths
> ------------------------------------------------------------------------------
>
> Key: HDFS-5482
> URL: https://issues.apache.org/jira/browse/HDFS-5482
> Project: Hadoop HDFS
> Issue Type: Bug
> Components: tools
> Affects Versions: 3.0.0
> Reporter: Stephen Chu
> Assignee: Colin Patrick McCabe
> Attachments: HDFS-5482.001.patch
>
>
> CacheAdmin -addDirective allows using a relative path.
> However, -removeDirectives will error complaining with
> "java.net.URISyntaxException: Relative path in absolute URI"
> {code}
> [schu@hdfs-c5-nfs ~]$ hdfs cacheadmin -addDirective -path foo -pool schu
> Added PathBasedCache entry 3
> [schu@hdfs-c5-nfs ~]$ hdfs cacheadmin -listDirectives
> Found 1 entry
> ID POOL PATH
> 3 schu /user/schu/foo
> [schu@hdfs-c5-nfs ~]$ hdfs cacheadmin -removeDirectives -path foo
> Exception in thread "main" java.lang.IllegalArgumentException:
> java.net.URISyntaxException: Relative path in absolute URI:
> hdfs://hdfs-c5-nfs.ent.cloudera.com:8020foo/foo
> at org.apache.hadoop.fs.Path.makeQualified(Path.java:470)
> at
> org.apache.hadoop.hdfs.DistributedFileSystem.listPathBasedCacheDirectives(DistributedFileSystem.java:1639)
> at
> org.apache.hadoop.hdfs.tools.CacheAdmin$RemovePathBasedCacheDirectivesCommand.run(CacheAdmin.java:287)
> at org.apache.hadoop.hdfs.tools.CacheAdmin.run(CacheAdmin.java:82)
> at org.apache.hadoop.hdfs.tools.CacheAdmin.main(CacheAdmin.java:87)
> Caused by: java.net.URISyntaxException: Relative path in absolute URI:
> hdfs://hdfs-c5-nfs.ent.cloudera.com:8020foo/foo
> at java.net.URI.checkPath(URI.java:1788)
> at java.net.URI.<init>(URI.java:734)
> at org.apache.hadoop.fs.Path.makeQualified(Path.java:467)
> ... 4 more
> [schu@hdfs-c5-nfs ~]$
> {code}
--
This message was sent by Atlassian JIRA
(v6.1#6144)