You are viewing a plain text version of this content. The canonical link for it is here.
Posted to common-issues@hadoop.apache.org by "Zoltan Haindrich (Jira)" <ji...@apache.org> on 2020/04/02 15:54:00 UTC

[jira] [Commented] (HADOOP-16582) LocalFileSystem's mkdirs() does not work as expected under viewfs.

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

Zoltan Haindrich commented on HADOOP-16582:
-------------------------------------------

[~stevel@apache.org], [~kihwal] this commit fundamentally changes how {{mkdirs()}} work:

earlier:
* all plain {{mkdirs(somePath)}} were fast-tracked to {{FileSystem.mkdirs}} which have rerouted them to {{mkdirs(somePath, somePerm)}} method with some defaults (which were static)
* an implementation of {{FileSystem}} have only needed implement "mkdirs(somePath, somePerm)" - because the other was not neccessarily called if it was always in a {{FilterFileSystem}} or something like that

now:
* especially {{FilterFileSystem}} forwards the call of {{mkdirs(p)}} to the actual fs implementation...which may skip overriden {{mkdirs(somPath,somePerm)}} methods
* ...and could cause issues for existing FileSystem implementations





> LocalFileSystem's mkdirs() does not work as expected under viewfs.
> ------------------------------------------------------------------
>
>                 Key: HADOOP-16582
>                 URL: https://issues.apache.org/jira/browse/HADOOP-16582
>             Project: Hadoop Common
>          Issue Type: Bug
>            Reporter: Kihwal Lee
>            Assignee: Kihwal Lee
>            Priority: Major
>             Fix For: 2.10.0, 3.3.0, 2.8.6, 2.9.3, 3.1.3, 3.2.2
>
>         Attachments: HADOOP-16582.1.patch, HADOOP-16582.patch
>
>
> When {{mkdirs(Path)}} is called against {{LocalFileSystem}}, the implementation in {{RawLocalFileSystem}} is called and the directory permission is determined by the umask.  However, if it is under {{ViewFileSystem}}, the default implementation in {{FileSystem}} is called and this causes explicit {{chmod()}} to 0777.
> The {{mkdirs(Path)}} method needs to be overriden in
> - ViewFileSystem to avoid calling the default implementation
> - ChRootedFileSystem for proper resolution of viewfs mount table
> - FilterFileSystem to avoid calling the default implementation
> Only then the same method in the target ({{LocalFileSystem}} in this case) will be called.  Hdfs does not suffer from the same flaw since it applies umask in all cases, regardless of what version of {{mkdirs()}} was called.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

---------------------------------------------------------------------
To unsubscribe, e-mail: common-issues-unsubscribe@hadoop.apache.org
For additional commands, e-mail: common-issues-help@hadoop.apache.org