[
https://issues.apache.org/jira/browse/HADOOP-7110?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12983805#action_12983805
]
Todd Lipcon commented on HADOOP-7110:
-------------------------------------
bq. So if it fails right after setting them to 000 it will be hard to remove
such file or directory
It's not due to failure of the process doing the chmod. It's due to other
processes or threads working inside the directory failing because there is a
moment in which they can't traverse the path inside the directory. As we've
seen in MR-2238 this race really does happen - we've got build failures on
three separate environments (Apache Hudson, my Hudson, and Greg's build box) to
prove it.
bq. So why don't we just set permissions to the values specified (in the right
order, which is probably important) rather than introducing more JNI code
The API is not flexible enough to do this. If you have a file 755 and want it
to be 700, the only way to get rid of the group/other bits is to first clear
those bits for all, then add them back for user only.
bq. Nobody said we should support posix permissions
Since we now support security, we have to be able to make some files mode 700
and others 755, etc. There's no way around it. The question here is
implementation method, not whether we should support an API since we've had
since 2008. Removing the ability to chmod isn't an option, considering
compatibility.
bq. Your patch is an alternative implementation of HADOOP-6304
And HADOOP-6304 is a sort-of-copy-paste of code originally introduced in
MAPREDUCE-842. I filed this JIRA as part of the fix for MAPREDUCE-2238 (which
is caused by the MR code that has the same problems)
Do you have a particular issue with the JNI code?
> Implement chmod with JNI
> ------------------------
>
> Key: HADOOP-7110
> URL: https://issues.apache.org/jira/browse/HADOOP-7110
> Project: Hadoop Common
> Issue Type: Improvement
> Components: io, native
> Affects Versions: 0.22.0
> Reporter: Todd Lipcon
> Assignee: Todd Lipcon
> Fix For: 0.22.0
>
> Attachments: hadoop-7110.txt
>
>
> MapReduce is currently using a race-prone workaround to approximate chmod()
> because forking chmod is too expensive. This race is causing build failures
> (and probably task failures too). We should implement chmod in the NativeIO
> library so we can have good performance (ie not fork) and still not be prone
> to races.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.