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

Chris Nauroth commented on HADOOP-8973:
---------------------------------------

Thanks for the comments, everyone.  This is very helpful.

{quote}
Does this change the current directory of the calling process?
{quote}

No, this forks a whole new process, and runs the cd within that process.  The 
working directory of the calling process is unchanged.  I think this is safe.

{quote}
Leveriging winutils in CheckDisk would provide a nice symmetry in the test.
{quote}

{quote}
Chris, I think it should be relatively easy to provide some API like this 
either through winutils or JNI.
{quote}

On all of the other discussion points, I think the summary is that we have 
discovered that there are deficiencies in the current logic of {{DiskChecker}}, 
and it's not a problem specific to Windows.  It's a problem on Linux too.  
Considering this, I'd still like to proceed with the basic approach in the 
current patch.  We can file a follow-up jira to fix the problem more 
completely, with full consideration for other permission models that include 
things like POSIX ACLs and NTFS ACLs.  (My opinion is that we should just wait 
for JDK7 instead of investing in JNI calls, but that's just my opinon.)  The 
scope of this follow-up jira would include both Linux and Windows.

Arpit had provided some feedback on the actual code, and I do want to provide a 
new patch to address that feedback.  I'm planning on uploading a new patch 
tomorrow.  If anyone disagrees with the approach though, please let me know so 
that I don't waste time preparing a patch that is objectionable.  :-)

{quote}
Well. In that case, it would be a standard pattern everywhere because 
everywhere code simply checks the value of the permissions and not whether the 
process checking that value actually has the right membership wrt that value. 
Isnt it so? Irrespective of OS.
{quote}

I'm reluctant to change the code so that the permission checks are less 
comprehensive on Linux for the sake of cross-platform consistency.  Right now, 
we have one overload of {{DiskChecker#checkDir}} that is correct AFAIK, and 
another overload of {{DiskChecker#checkDir}} that is incomplete when 
considering more sophisticated permission models on the local file system, like 
POSIX ACLs.  The approach in the current patch at least achieves consistent 
behavior between Linux and Windows, so at least we have symmetry with regards 
to that.

                
> DiskChecker cannot reliably detect an inaccessible disk on Windows with NTFS 
> ACLs
> ---------------------------------------------------------------------------------
>
>                 Key: HADOOP-8973
>                 URL: https://issues.apache.org/jira/browse/HADOOP-8973
>             Project: Hadoop Common
>          Issue Type: Bug
>          Components: util
>    Affects Versions: trunk-win
>            Reporter: Chris Nauroth
>            Assignee: Chris Nauroth
>         Attachments: HADOOP-8973-branch-trunk-win.patch
>
>
> DiskChecker.checkDir uses File.canRead, File.canWrite, and File.canExecute to 
> check if a directory is inaccessible.  These APIs are not reliable on Windows 
> with NTFS ACLs due to a known JVM bug.

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