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

Tsz Wo (Nicholas), SZE commented on HADOOP-2366:
------------------------------------------------

> If tests pass after fixing the behavior on an empty conf, do you have an 
> issue with changing the semantics of these utility functions so long as the 
> new behavior is clearly documented in the javadoc?

Configuration is a public class and is not a part of fs or hdfs.  Trimming the 
string values may make sense in fs/hdfs paths but it may not for the other 
usages.  Personally, I wish the trimming was done in the beginning.  
Unfortunately, it was not.  If we change it now, then it breaks existing 
semantics.  I think that users rarely use leading or tailing spaces in 
configuration values but we cannot break them.

When I worked on HADOOP-2461, I think that the property names should be trimmed 
but not the values. Otherwise, it forbids the potential use of leading and 
trailing spaces. If there is a need, the codes using the conf values should do 
the trimming.  In this issue, only the values for dfs.data.dir should be 
trimmed.

If a trimmed version of getStrings(..) is needed, I think it is better to 
provide new methods, say getTrimmedStrings(..) in Configuration and StringUtils 
but not changing the existing ones.

> Space in the value for dfs.data.dir can cause great problems
> ------------------------------------------------------------
>
>                 Key: HADOOP-2366
>                 URL: https://issues.apache.org/jira/browse/HADOOP-2366
>             Project: Hadoop Core
>          Issue Type: Bug
>          Components: conf
>            Reporter: Ted Dunning
>            Assignee: Todd Lipcon
>         Attachments: HADOOP-2366.patch
>
>
> The following configuration causes problems:
> <property>
>   <name>dfs.data.dir</name>
>   <value>/mnt/hstore2/hdfs, /home/foo/dfs</value>  
>   <description>
>   Determines where on the local filesystem an DFS data node  should store its 
> bl
> ocks.  If this is a comma-delimited  list of directories, then data will be 
> stor
> ed in all named  directories, typically on different devices.  Directories 
> that 
> do not exist are ignored.  
>   </description>
> </property>
> The problem is that the space after the comma causes the second directory for 
> storage to be " /home/foo/dfs" which is in a directory named <SPACE> which 
> contains a sub-dir named "home" in the hadoop datanodes default directory.  
> This will typically cause the user's home partition to fill, but will be very 
> hard for the user to understand since a directory with a whitespace name is 
> hard to understand.
> My proposed solution would be to trimLeft all path names from this and 
> similar property after splitting on comma.  This still allows spaces in file 
> and directory names but avoids this problem. 

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to