[ https://issues.apache.org/jira/browse/HADOOP-9877?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13741497#comment-13741497 ]
Colin Patrick McCabe commented on HADOOP-9877: ---------------------------------------------- Thanks for finding this. {code} + } else { + FileStatus s = getFileStatus(new Path(candidate.getPath(), component)); + if (s != null) { + newCandidates.add(s); {code} This is incorrect. If you try to list a symlink this way, it will list the target file instead. You need to build up the path the same way the other code path does, except using {{getFileLinkStatus}} (not {{getFileStatus}}). I agree with Andrew's suggestion about comments and Suresh's suggestion about tests. Rather than creating snapshots in the unit test, you could list things in the /.reserved directory, since that always exists (and will not be returned by listStatus). > hadoop fsshell can not ls .snapshot dir after HADOOP-9817 > --------------------------------------------------------- > > Key: HADOOP-9877 > URL: https://issues.apache.org/jira/browse/HADOOP-9877 > Project: Hadoop Common > Issue Type: Bug > Affects Versions: 2.1.0-beta > Reporter: Binglin Chang > Assignee: Binglin Chang > Attachments: HADOOP-9877.v1.patch > > > {code} > decster:~/hadoop> bin/hadoop fs -ls "/foo/.snapshot" > 13/08/16 01:17:22 INFO hdfs.DFSClient: +++++ listPath(/) > 13/08/16 01:17:22 INFO hdfs.DFSClient: +++++ listPath(/foo) > ls: `/foo/.snapshot': No such file or directory > {code} > HADOOP-9817 refactor some globStatus code, but forgot to handle special case > that .snapshot dir is not show up in listStatus but exists, so we need to > explicitly check path existence using getFileStatus, rather than depending on > listStatus results. -- 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