[
https://issues.apache.org/jira/browse/HADOOP-4114?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Tom White updated HADOOP-4114:
------------------------------
Attachment: hadoop-4114.patch
Here is a test that exposes these differences. It uses
FileSystemContractBaseTest which is already used for testing the contract of
HDFS and the S3 filesystems. Other filesystem implementations would also
benefit from using this test.
> Make contracts of LocalFileSystem and DistributedFileSystem consistent
> ----------------------------------------------------------------------
>
> Key: HADOOP-4114
> URL: https://issues.apache.org/jira/browse/HADOOP-4114
> Project: Hadoop Core
> Issue Type: Improvement
> Components: dfs, fs
> Reporter: Tom White
> Attachments: hadoop-4114.patch
>
>
> There are a number of edge cases that the two file system implementations
> handle differently. In particular:
> * When trying to make a directory under an existing file, HDFS throws an
> IOException while LocalFileSystem doesn't.
> * The FileSytem#listStatus(Path) method returns null for a non-existent file
> on HDFS, while LocalFileSytem returns an empty FileStatus array.
> * When trying to rename a non-existent path, LocalFileSystem throws an
> IOException, while HDFS returns false.
> * When renaming a file or directory to a non-existent directory (e.g. /a/b to
> /c/d, where /c doesn't exist) LocalFileSystem succeeds (returns true) while
> HDFS fails (false).
> * When renaming a file (or directory) as an existing file (or directory)
> LocalFileSystem succeeds (returns true) while HDFS fails (false).
> We should document the expected behaviour for these cases in FileSystem's
> javadoc, and make sure all implementations conform to it.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.