[ https://issues.apache.org/jira/browse/HADOOP-19555?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Gautham Banasandra updated HADOOP-19555: ---------------------------------------- Description: The Apache Commons Net FTP library is used for FTPFileSystem. In *TestFTPFileSystem#testRenameFileWithFullQualifiedPath()*, the FS operations (such as touch and rename) are made using absolute paths. However, the library expects relative paths. This caused *FTPFileSystem#getFileStatus()* to throw FileNotFoundException since the library was trying to look for the absolute path under which the FileSystem was mounted. This worked fine on Linux as it just appended the absolute path under the FileSystem's mount path - !image-2025-04-27-23-05-05-212.png! However, this fails on Windows since suffixing the absolute path under the FileSystem's mount path doesn't yield a valid path due to the drive letter in the absolute path. Consider the following illustration - +On Linux+ {text} path1 => /mnt/d/a/b path2 => /mnt/d/x/y path1 + path2 yields a valid path => /mnt/d/a/b/mnt/d/x/y {text} +On Windows+ {text} path1 => C:\a\b path2 => C:\x\y path1 + path2 doesn't yield a valid path => C:\a\b\C:\x\y {text} So, to fix this, we need to treat the FS operations as purely relative. was: The Apache Commons Net FTP library is used for FTPFileSystem. In *TestFTPFileSystem#testRenameFileWithFullQualifiedPath()*, the FS operations (such as touch and rename) are made using absolute paths. However, the library expects relative paths. This caused *FTPFileSystem#getFileStatus()* to throw FileNotFoundException since the library was trying to look for the absolute path under which the FileSystem was mounted. This worked fine on Linux as it just appended the absolute path under the FileSystem's mount path - !image-2025-04-27-23-05-05-212.png! However, this fails on Windows since suffixing the absolute path under the FileSystem's mount path doesn't yield a valid path due to the drive letter in the absolute path. Consider the following illustration - +On Linux+ {text} path1 => /mnt/d/a/b path2 => /mnt/d/x/y path1 + path2 yields a valid path => /mnt/d/a/b/mnt/d/x/y {text} +On Windows+ {text} path1 => C:\a\b path2 => C:\x\y path1 + path2 doesn't yield a valid path => C:\a\b\C:\x\y {text} So, to fix this, we need to treat the FS operations a purely relative. > Fix testRenameFileWithFullQualifiedPath on Windows > -------------------------------------------------- > > Key: HADOOP-19555 > URL: https://issues.apache.org/jira/browse/HADOOP-19555 > Project: Hadoop Common > Issue Type: Bug > Components: hadoop-common > Affects Versions: 3.5.0 > Environment: Windows 10 > Reporter: Gautham Banasandra > Assignee: Gautham Banasandra > Priority: Critical > Fix For: 3.5.0 > > Attachments: image-2025-04-27-23-05-05-212.png > > > The Apache Commons Net FTP library is used for FTPFileSystem. In > *TestFTPFileSystem#testRenameFileWithFullQualifiedPath()*, the FS operations > (such as touch and rename) are made using absolute paths. However, the > library expects relative paths. > This caused *FTPFileSystem#getFileStatus()* to throw FileNotFoundException > since the library was trying to look for the absolute path under which the > FileSystem was mounted. > This worked fine on Linux as it just appended the absolute path under the > FileSystem's mount path - > !image-2025-04-27-23-05-05-212.png! > However, this fails on Windows since suffixing the absolute path under the > FileSystem's mount path doesn't yield a valid path due to the drive letter in > the absolute path. > Consider the following illustration - > +On Linux+ > {text} > path1 => /mnt/d/a/b > path2 => /mnt/d/x/y > path1 + path2 yields a valid path => /mnt/d/a/b/mnt/d/x/y > {text} > +On Windows+ > {text} > path1 => C:\a\b > path2 => C:\x\y > path1 + path2 doesn't yield a valid path => C:\a\b\C:\x\y > {text} > So, to fix this, we need to treat the FS operations as purely relative. -- This message was sent by Atlassian Jira (v8.20.10#820010) --------------------------------------------------------------------- To unsubscribe, e-mail: common-issues-unsubscr...@hadoop.apache.org For additional commands, e-mail: common-issues-h...@hadoop.apache.org