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

Colin Patrick McCabe commented on HADOOP-9485:
----------------------------------------------

I think the issue here is that running without XML defaults works in branch-1, 
and when upgrading to branch-2 or a distribution based on that, people view 
this kind of regression as a stumbling block.

bq. Why is it risky to change the default in the code to match the default from 
the XML file? 

Currently, you can set {{hadoop.rpc.socket.factory.class.default = null}} and 
we'll use {{SocketFactory.getDefault()}}.  If we change this behavior we may 
break users who are relying on it.  It certainly breaks {{TestSaslRPC}}.  It 
would be an incompatible change that would probably cause problems for users.

I suppose we could make the code default to the same thing as the XML file, but 
not change the meaning of setting the key to null.  That might work.
                
> inconsistent defaults for hadoop.rpc.socket.factory.class.default
> -----------------------------------------------------------------
>
>                 Key: HADOOP-9485
>                 URL: https://issues.apache.org/jira/browse/HADOOP-9485
>             Project: Hadoop Common
>          Issue Type: Bug
>          Components: net
>    Affects Versions: 2.0.5-beta
>            Reporter: Colin Patrick McCabe
>            Assignee: Colin Patrick McCabe
>            Priority: Minor
>         Attachments: HADOOP-9485.001.patch, HADOOP-9485.002.patch, 
> HADOOP-9485.003.patch, HADOOP-9485.004.patch, HADOOP-9485.005.patch
>
>
> In {{core-default.xml}}, {{hadoop.rpc.socket.factory.class.default}} defaults 
> to {{org.apache.hadoop.net.StandardSocketFactory}}.  However, in 
> {{CommonConfigurationKeysPublic.java}}, there is no default for this key.  
> This is inconsistent (defaults in the code versus defaults in the XML files 
> should match.)  It also leads to problems with {{RemoteBlockReader2}}, since 
> the default {{SocketFactory}} creates a {{Socket}} without an associated 
> channel.  {{RemoteBlockReader2}} cannot use such a {{Socket}}.
> This bug only really becomes apparent when you create a {{Configuration}} 
> using the {{Configuration(loadDefaults=true)}} constructor.  Thanks to AB 
> Srinivasan for his help in discovering this bug.

--
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

Reply via email to