hadoop-common-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Bikas Saha (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HADOOP-9413) Introduce common utils for File#setReadable/Writable/Executable and File#canRead/Write/Execute that work cross-platform
Date Sun, 21 Apr 2013 00:19:15 GMT

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

Bikas Saha commented on HADOOP-9413:
------------------------------------

Thanks for doing this. Much better approach and functionally correct!

Enums with defined value will make this unnecessary. Minor though but typesafe.
{code}
+      if (desiredAccess != ACCESS_READ && desiredAccess != ACCESS_WRITE
+          && desiredAccess != ACCESS_EXECUTE) {
{code}

The previous code was returning error when this failed. Not necessary anymore?
{code}
-  if (!AuthzFreeContext(hAuthzClientContext))
+
+GetEffectiveRightsForSidEnd:
+  if (hManager != NULL)
   {
-    ret = GetLastError();
-    goto GetEffectiveRightsForSidEnd;
+    (void)AuthzFreeResourceManager(hManager);
+  }
+  if (hAuthzClientContext != NULL)
+  {
+    (void)AuthzFreeContext(hAuthzClientContext);
   }
{code}

How about changing these to setWritable()? Thus testing the other new methods too. + end to
end symmetry check also achieved.
{code}
+    FileUtil.chmod(testFile.getAbsolutePath(), "u-r");
+    assertFalse(NativeIO.Windows.access(testFile.getAbsolutePath(),
+        NativeIO.Windows.ACCESS_READ));
{code}
                
> 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

Mime
View raw message