[ 
https://issues.apache.org/jira/browse/HADOOP-9413?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Ivan Mitic updated HADOOP-9413:
-------------------------------

    Attachment: HADOOP-9413.commonfileutils.2.patch

Attaching the updated patch. I went in the direction of exposing a native 
access check API as Chris’ suggested above. The problem with the previous patch 
that bothered me was that it used the owner information to do the access check, 
what is not accurate in all cases on Windows (a user can still read/write/exec 
files/folders even if he is not a user/group owner). The new access check API 
checks if a user has the appropriate read/write/execute permission by checking 
the file ACLs. Another good side is that API could be substituted with JDK7 
Files#isReadable/isWritable/isExecutable once Hadoop moves to Java 7.

libwinutils.c: I noticed that GetEffectiveRightsForSid() does not do proper 
cleanup so I fixed that with my patch as well.

[~cnauroth][~bikassaha] let me know how this looks.

I'll prepare the branch-1-win patch once the trunk patch is ready for commit.
                
> Introduce common utils for File#setReadable/Writable/Executable and 
> File#canRead/Write/Execute that work cross-platform
> -----------------------------------------------------------------------------------------------------------------------
>
>                 Key: HADOOP-9413
>                 URL: https://issues.apache.org/jira/browse/HADOOP-9413
>             Project: Hadoop Common
>          Issue Type: Bug
>            Reporter: Ivan Mitic
>            Assignee: Ivan Mitic
>             Fix For: 3.0.0
>
>         Attachments: HADOOP-9413.commonfileutils.2.patch, 
> HADOOP-9413.commonfileutils.patch
>
>
> So far, we've seen many unittest and product bugs in Hadoop on Windows 
> because Java's APIs that manipulate with permissions do not work as expected. 
> We've addressed many of these problems on one-by-one basis (by either 
> changing code a bit or disabling the test). While debugging the remaining 
> unittest failures we continue to run into the same patterns of problems, and 
> instead of addressing them one-by-one, I propose that we expose a set of 
> equivalent wrapper APIs that will work well for all platforms.
> Scanning thru the codebase, this will actually be a simple change as there 
> are very few places that use File#setReadable/Writable/Executable and 
> File#canRead/Write/Execute (5 files in Common, 9 files in HDFS).
> HADOOP-8973 contains additional context on the problem.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to