[ https://issues.apache.org/jira/browse/HDFS-1760?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Daryn Sharp updated HDFS-1760: ------------------------------ Attachment: HDFS-1760.patch > problems with getFullPathName > ----------------------------- > > Key: HDFS-1760 > URL: https://issues.apache.org/jira/browse/HDFS-1760 > Project: Hadoop HDFS > Issue Type: Bug > Components: name-node > Affects Versions: 0.22.0 > Reporter: Daryn Sharp > Assignee: Daryn Sharp > Fix For: 0.23.0 > > Attachments: HDFS-1760.patch > > > FSDirectory's getFullPathName method is flawed. Given a list of inodes, it > starts at index 1 instead of 0 (based on the assumption that inode[0] is > always the root inode) and then builds the string with "/"+inode[i]. This > means the empty string is returned for the root, or when requesting the full > path of the parent dir for top level items. > In addition, it's not guaranteed that the list of inodes starts with the root > inode. The inode lookup routine will only fill the inode array with the last > n-many inodes of a path if the array is smaller than the path. In these > cases, getFullPathName will skip the first component of the relative path, > and then assume the second component starts at the root. ex. "a/b/c" becomes > "/b/c". > There are a few places in the code where the issue was hacked around by > assuming that a 0-length path meant a hardcoded "/" instead of Path.SEPARATOR. -- This message is automatically generated by JIRA. For more information on JIRA, see: http://www.atlassian.com/software/jira