Details
-
Bug
-
Status: Resolved
-
Major
-
Resolution: Fixed
-
1.8.0, 1.7.1
-
None
Description
PutHDFS does not use the value of "fs.permissions.umask-mode" in hdfs-site.xml. If the user does not provide a umask in the "Permissions umask" property, PutHDFS will use FsPermissions.DEFAULT_UMASK and set that in the config, which will overwrite the value from hdfs-site.xml.
The code below shows that without the "Permissions umask" property being set, it will force a umask of '18', the value of FsPermission.DEFAULT_MASK.
Instead, PutHDFS should first check the Configuration instance to see if "fs.permissions.umask-mode" is set and use that value. FsPermission.DEFAULT_MASK should be used only in the case when "fs.permissions.umask-mode" is not set.
protected void preProcessConfiguration(final Configuration config, final ProcessContext context) { // Set umask once, to avoid thread safety issues doing it in onTrigger final PropertyValue umaskProp = context.getProperty(UMASK); final short dfsUmask; if (umaskProp.isSet()) { dfsUmask = Short.parseShort(umaskProp.getValue(), 8); } else { dfsUmask = FsPermission.DEFAULT_UMASK; } FsPermission.setUMask(config, new FsPermission(dfsUmask)); }
Attachments
Issue Links
- links to