[ 
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:
-------------------------------------------

[~ste...@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-unsubscr...@hadoop.apache.org
For additional commands, e-mail: common-issues-h...@hadoop.apache.org

Reply via email to