hadoop-hdfs-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Colin Patrick McCabe (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HDFS-5513) CacheAdmin commands fail when using . as the path
Date Tue, 19 Nov 2013 16:57:21 GMT

    [ https://issues.apache.org/jira/browse/HDFS-5513?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13826666#comment-13826666
] 

Colin Patrick McCabe commented on HDFS-5513:
--------------------------------------------

bq. This was caused by the attempt to deep-copy in the PBCD Builder. Paths normalize the URI
upon creation, so the single . simply gets thrown away. There doesn't seem to be a way to
deep-copy a Path, but at the same time it doesn't look like you can mutate a Path either.

I took another look and you are right.  Although the Path does make its URI accessible to
the outside world, the URI has no methods that could be used to mutate it.

Can we merge {{testSingleDotPath}} into another junit test?  It just seems kind of like overkill
to set up a whole DFSCluster just to see if a PBCE with "." as the path can be added and then
removed.  It would be nice to keep test execution time down.

+1 once that's addressed

> CacheAdmin commands fail when using . as the path
> -------------------------------------------------
>
>                 Key: HDFS-5513
>                 URL: https://issues.apache.org/jira/browse/HDFS-5513
>             Project: Hadoop HDFS
>          Issue Type: Bug
>          Components: caching, tools
>    Affects Versions: 3.0.0
>            Reporter: Stephen Chu
>            Assignee: Andrew Wang
>            Priority: Minor
>         Attachments: hdfs-5513-1.patch, hdfs-5513-2.patch
>
>
> The hdfs CLI commands generally accept "." as a path argument.
> e.g.
> {code}
> hdfs dfs -rm .
> hdfs dfsadmin -allowSnapshot .
> {code}
> I don't think it's very common to use the path "." but the CacheAdmin commands will fail
saying that it cannot create a Path from an empty string.
> {code}
> [schu@hdfs-c5-nfs ~]$ hdfs cacheadmin -removeDirectives -path .
> Exception in thread "main" java.lang.IllegalArgumentException: Can not create a Path
from an empty string
> 	at org.apache.hadoop.fs.Path.checkPathArg(Path.java:127)
> 	at org.apache.hadoop.fs.Path.<init>(Path.java:184)
> 	at org.apache.hadoop.hdfs.protocol.PathBasedCacheDirective$Builder.<init>(PathBasedCacheDirective.java:66)
> 	at org.apache.hadoop.hdfs.DistributedFileSystem.listPathBasedCacheDirectives(DistributedFileSystem.java:1639)
> 	at org.apache.hadoop.hdfs.tools.CacheAdmin$RemovePathBasedCacheDirectivesCommand.run(CacheAdmin.java:365)
> 	at org.apache.hadoop.hdfs.tools.CacheAdmin.run(CacheAdmin.java:82)
> 	at org.apache.hadoop.hdfs.tools.CacheAdmin.main(CacheAdmin.java:87)
> [schu@hdfs-c5-nfs ~]$ hdfs cacheadmin -addDirective -path . -pool schu
> Exception in thread "main" java.lang.IllegalArgumentException: Can not create a Path
from an empty string
> 	at org.apache.hadoop.fs.Path.checkPathArg(Path.java:127)
> 	at org.apache.hadoop.fs.Path.<init>(Path.java:184)
> 	at org.apache.hadoop.hdfs.protocol.PathBasedCacheDirective$Builder.<init>(PathBasedCacheDirective.java:66)
> 	at org.apache.hadoop.hdfs.DistributedFileSystem.addPathBasedCacheDirective(DistributedFileSystem.java:1598)
> 	at org.apache.hadoop.hdfs.tools.CacheAdmin$AddPathBasedCacheDirectiveCommand.run(CacheAdmin.java:180)
> 	at org.apache.hadoop.hdfs.tools.CacheAdmin.run(CacheAdmin.java:82)
> 	at org.apache.hadoop.hdfs.tools.CacheAdmin.main(CacheAdmin.java:87)
> {code}



--
This message was sent by Atlassian JIRA
(v6.1#6144)

Mime
View raw message