Author: brandonli Date: Tue May 27 23:05:15 2014 New Revision: 1597896 URL: http://svn.apache.org/r1597896 Log: HDFS-6411. Merging change r1597895 from trunk
Modified: hadoop/common/branches/branch-2/hadoop-hdfs-project/hadoop-hdfs-nfs/src/main/java/org/apache/hadoop/hdfs/nfs/nfs3/RpcProgramNfs3.java hadoop/common/branches/branch-2/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt Modified: hadoop/common/branches/branch-2/hadoop-hdfs-project/hadoop-hdfs-nfs/src/main/java/org/apache/hadoop/hdfs/nfs/nfs3/RpcProgramNfs3.java URL: http://svn.apache.org/viewvc/hadoop/common/branches/branch-2/hadoop-hdfs-project/hadoop-hdfs-nfs/src/main/java/org/apache/hadoop/hdfs/nfs/nfs3/RpcProgramNfs3.java?rev=1597896&r1=1597895&r2=1597896&view=diff ============================================================================== --- hadoop/common/branches/branch-2/hadoop-hdfs-project/hadoop-hdfs-nfs/src/main/java/org/apache/hadoop/hdfs/nfs/nfs3/RpcProgramNfs3.java (original) +++ hadoop/common/branches/branch-2/hadoop-hdfs-project/hadoop-hdfs-nfs/src/main/java/org/apache/hadoop/hdfs/nfs/nfs3/RpcProgramNfs3.java Tue May 27 23:05:15 2014 @@ -124,6 +124,7 @@ import org.apache.hadoop.oncrpc.security import org.apache.hadoop.security.AccessControlException; import org.apache.hadoop.security.SecurityUtil; import org.apache.hadoop.security.UserGroupInformation; +import org.apache.hadoop.security.authorize.AuthorizationException; import org.jboss.netty.buffer.ChannelBuffer; import org.jboss.netty.buffer.ChannelBuffers; import org.jboss.netty.channel.Channel; @@ -270,6 +271,17 @@ public class RpcProgramNfs3 extends RpcP Nfs3FileAttributes attrs = null; try { attrs = writeManager.getFileAttr(dfsClient, handle, iug); + } catch (RemoteException r) { + LOG.warn("Exception ", r); + IOException io = r.unwrapRemoteException(); + /** + * AuthorizationException can be thrown if the user can't be proxy'ed. + */ + if (io instanceof AuthorizationException) { + return new GETATTR3Response(Nfs3Status.NFS3ERR_ACCES); + } else { + return new GETATTR3Response(Nfs3Status.NFS3ERR_IO); + } } catch (IOException e) { LOG.info("Can't get file attribute, fileId=" + handle.getFileId(), e); response.setStatus(Nfs3Status.NFS3ERR_IO); @@ -499,6 +511,17 @@ public class RpcProgramNfs3 extends RpcP securityHandler.getUid(), securityHandler.getGid(), attrs); return new ACCESS3Response(Nfs3Status.NFS3_OK, attrs, access); + } catch (RemoteException r) { + LOG.warn("Exception ", r); + IOException io = r.unwrapRemoteException(); + /** + * AuthorizationException can be thrown if the user can't be proxy'ed. + */ + if (io instanceof AuthorizationException) { + return new ACCESS3Response(Nfs3Status.NFS3ERR_ACCES); + } else { + return new ACCESS3Response(Nfs3Status.NFS3ERR_IO); + } } catch (IOException e) { LOG.warn("Exception ", e); return new ACCESS3Response(Nfs3Status.NFS3ERR_IO); @@ -1680,6 +1703,17 @@ public class RpcProgramNfs3 extends RpcP return new FSSTAT3Response(Nfs3Status.NFS3_OK, attrs, totalBytes, freeBytes, freeBytes, maxFsObjects, maxFsObjects, maxFsObjects, 0); + } catch (RemoteException r) { + LOG.warn("Exception ", r); + IOException io = r.unwrapRemoteException(); + /** + * AuthorizationException can be thrown if the user can't be proxy'ed. + */ + if (io instanceof AuthorizationException) { + return new FSSTAT3Response(Nfs3Status.NFS3ERR_ACCES); + } else { + return new FSSTAT3Response(Nfs3Status.NFS3ERR_IO); + } } catch (IOException e) { LOG.warn("Exception ", e); return new FSSTAT3Response(Nfs3Status.NFS3ERR_IO); Modified: hadoop/common/branches/branch-2/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt URL: http://svn.apache.org/viewvc/hadoop/common/branches/branch-2/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt?rev=1597896&r1=1597895&r2=1597896&view=diff ============================================================================== --- hadoop/common/branches/branch-2/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt (original) +++ hadoop/common/branches/branch-2/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt Tue May 27 23:05:15 2014 @@ -369,6 +369,9 @@ Release 2.4.1 - UNRELEASED HDFS-6397. NN shows inconsistent value in deadnode count. (Mohammad Kamrul Islam via kihwal) + HDFS-6411. nfs-hdfs-gateway mount raises I/O error and hangs when a + unauthorized user attempts to access it (brandonli) + Release 2.4.0 - 2014-04-07 INCOMPATIBLE CHANGES