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 "Vinod Kumar Vavilapalli (JIRA)" <ji...@apache.org> on 2018/06/28 23:24:00 UTC

[jira] [Commented] (HADOOP-15571) After HADOOP-13440, multiple filesystems/file-contexts created with the same Configuration object are forced to have the same umask

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

Vinod Kumar Vavilapalli commented on HADOOP-15571:
--------------------------------------------------

From my limited understanding of all of this ....

This is a regression from 2.x to 3.x.

Essentially there were two ways to set umask in 2.x.
 # FileContext.setUMask(myUMask) // Previously per file-context
 # conf.set(fs.permissions.umask-mode, myUmask) // Global

In 3.x, there is only one. Either (the configuration from a file) or (any-call by code anywhere in the same JVM for any file-context) will set umask for *all* file-systems.

IMO and IIUC, we should support both - with the FileContext.setUMask() taking precedence if it was explicitly called. /cc [~ajisakaa], [~boky01], [~yufeigu], [~steve_l] for HADOOP-13440 & related patches.

> After HADOOP-13440, multiple filesystems/file-contexts created with the same Configuration object are forced to have the same umask
> -----------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: HADOOP-15571
>                 URL: https://issues.apache.org/jira/browse/HADOOP-15571
>             Project: Hadoop Common
>          Issue Type: Bug
>            Reporter: Vinod Kumar Vavilapalli
>            Priority: Critical
>
> Ran into a super hard-to-debug due to this.
> h4. Issue
> Configuration conf = new Configuration();
>  fc1 = FileContext.getFileContext(uri1, conf);
>  fc2 = FileContext.getFileContext(uri2, conf);
>  fc.setUMask(umask_for_fc1); // Screws up umask for fc2 also!
> This was not the case before HADOOP-13440.
> h4. Symptoms:
> h5. Scenario I ran into
> When trying to localize a HDFS directory (hdfs:///my/dir/1.txt), NodeManager tries to replicate the directory structure on the local file-system ($yarn-local-dirs/filecache/my/dir/1.txt).
> Now depending on whether NM has ever done a log-aggregation (completely unrelated code that sets umask to be 137 for its own files on HDFS), the directories /my and /my/dir on local-fs may have different permissions. In the specific case where NM did log-aggregation, /my/dir was created with 137 umask and so localization of 1.txt completely failed due to absent directory executable permissions!
> h5. Previous scenarios:
> We ran into this before in test-cases and instead of fixing the root-cause, we just fixed the test-cases: YARN-5679 / YARN-5749



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

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