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

Chris Nauroth updated HADOOP-11321:
-----------------------------------
    Attachment: HADOOP-11321.005.patch

I'm uploading patch v005 to fix a bug in my error handling for 
{{INVALID_HANDLE_VALUE}}.  This is the diff since v004:

{code}
diff --git 
a/hadoop-common-project/hadoop-common/src/main/winutils/libwinutils.c 
b/hadoop-common-project/hadoop-comm
index b006f17..c63ea3f 100644
--- a/hadoop-common-project/hadoop-common/src/main/winutils/libwinutils.c
+++ b/hadoop-common-project/hadoop-common/src/main/winutils/libwinutils.c
@@ -1696,10 +1696,13 @@ DWORD CreateFileWithMode(__in LPCWSTR lpPath, __in 
DWORD dwDesiredAccess,
 
   hFile = CreateFileW(lpLongPath, dwDesiredAccess, dwShareMode, &sa,
     dwCreationDisposition, dwFlagsAndAttributes, NULL);
-  if (hFile != INVALID_HANDLE_VALUE) {
-    *pHFile = hFile;
+  if (hFile == INVALID_HANDLE_VALUE) {
+    dwRtnCode = GetLastError();
+    goto done;
   }
 
+  *pHFile = hFile;
+
 done:
   LocalFree(lpLongPath);
   LocalFree(pDACL);
{code}


> copyToLocal cannot save a file to an SMB share unless the user has Full 
> Control permissions.
> --------------------------------------------------------------------------------------------
>
>                 Key: HADOOP-11321
>                 URL: https://issues.apache.org/jira/browse/HADOOP-11321
>             Project: Hadoop Common
>          Issue Type: Bug
>          Components: fs
>    Affects Versions: 2.6.0
>            Reporter: Chris Nauroth
>            Assignee: Chris Nauroth
>         Attachments: HADOOP-11321.003.patch, HADOOP-11321.004.patch, 
> HADOOP-11321.005.patch, HADOOP-11321.1.patch, HADOOP-11321.2.patch, 
> winutils.tmp.patch
>
>
> In Hadoop 2, it is impossible to use {{copyToLocal}} to copy a file from HDFS 
> to a destination on an SMB share.  This is because in Hadoop 2, the 
> {{copyToLocal}} maps to 2 underlying {{RawLocalFileSystem}} operations: 
> {{create}} and {{setPermission}}.  On an SMB share, the user may be 
> authorized for the {{create}} but denied for the {{setPermission}}.  Windows 
> denies the {{WRITE_DAC}} right required by {{setPermission}} unless the user 
> has Full Control permissions.  Granting Full Control isn't feasible for most 
> deployments, because it's insecure.  This is a regression from Hadoop 1, 
> where {{copyToLocal}} only did a {{create}} and didn't do a separate 
> {{setPermission}}.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to