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

Jing Zhao commented on HDFS-5587:
---------------------------------

The new patch looks good to me. Just two nits:
# How about putting e into LOG.error and removing e.printStackTrace()?
{code}
+      try {
+        updateMaps();
+      } catch (IOException e) {
+        LOG.error("Can't update the maps. Will use the old ones,"
+            + " which can potentially cause problem.");
+        e.printStackTrace();
+      }
{code}
# We do not need to print the stack trace of e here since we're catching the 
specific exception.
{code}
+    } catch (DuplicateNameOrIdException e) {
+      e.printStackTrace();
+    }
{code}

+1 after addressing the comments.

> add debug information when NFS fails to start with duplicate user or group 
> names
> --------------------------------------------------------------------------------
>
>                 Key: HDFS-5587
>                 URL: https://issues.apache.org/jira/browse/HDFS-5587
>             Project: Hadoop HDFS
>          Issue Type: Improvement
>          Components: nfs
>            Reporter: Brandon Li
>            Assignee: Brandon Li
>            Priority: Minor
>         Attachments: HDFS-5587.001.patch, HDFS-5587.002.patch
>
>
> When the host provides duplicate user or group names, NFS will not start and 
> print errors like the following:
> {noformat}
> ... ... 
> 13/11/25 18:11:52 INFO nfs3.Nfs3Base: registered UNIX signal handlers for 
> [TERM, HUP, INT]
> Exception in thread "main" java.lang.IllegalArgumentException: value already 
> present: s-iss
> at com.google.common.base.Preconditions.checkArgument(Preconditions.java:115)
> at 
> com.google.common.collect.AbstractBiMap.putInBothMaps(AbstractBiMap.java:112)
> at com.google.common.collect.AbstractBiMap.put(AbstractBiMap.java:96)
> at com.google.common.collect.HashBiMap.put(HashBiMap.java:85)
> at 
> org.apache.hadoop.nfs.nfs3.IdUserGroup.updateMapInternal(IdUserGroup.java:85)
> at org.apache.hadoop.nfs.nfs3.IdUserGroup.updateMaps(IdUserGroup.java:110)
> at org.apache.hadoop.nfs.nfs3.IdUserGroup.<init>(IdUserGroup.java:54)
> at 
> org.apache.hadoop.hdfs.nfs.nfs3.RpcProgramNfs3.<init>(RpcProgramNfs3.java:172)
> at 
> org.apache.hadoop.hdfs.nfs.nfs3.RpcProgramNfs3.<init>(RpcProgramNfs3.java:164)
> at org.apache.hadoop.hdfs.nfs.nfs3.Nfs3.<init>(Nfs3.java:41)
> at org.apache.hadoop.hdfs.nfs.nfs3.Nfs3.main(Nfs3.java:52)
> 13/11/25 18:11:54 INFO nfs3.Nfs3Base: SHUTDOWN_MSG:
> ... ...
> {noformat}
> The reason NFS should not start is that, HDFS (non-kerberos cluster) uses 
> name as the only way to identify a user. On some linux box, it could have two 
> users with the same name but different user IDs. Linux might be able to work 
> fine with that most of the time. However, when NFS gateway talks to HDFS, 
> HDFS accepts only user name. That is, from HDFS' point of view, these two 
> different users are the same user even though they are different on the Linux 
> box.
> The duplicate names on Linux systems sometimes is because of some legacy 
> system configurations, or combined name services.
> Regardless, NFS gateway should print some help information so the user can 
> understand the error and the remove the duplicated names before NFS restart.



--
This message was sent by Atlassian JIRA
(v6.1#6144)

Reply via email to