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

[email protected] commented on HBASE-4109:
------------------------------------------------------


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/1139/
-----------------------------------------------------------

Review request for hbase and Michael Stack.


Summary
-------

If you are using an interface anything other than 'default' (literally that 
keyword) DNS.java 's getDefaultHost will return a string which will 
have a trailing period at the end. It seems javadoc of reverseDns in DNS.java 
(see below) is conflicting with what that function is actually doing. 
It is returning a PTR record while claims it returns a hostname. The PTR record 
always has period at the end , RFC: http://irbs.net/bog-4.9.5/bog47.html

This patch adds a sanitizing function and wraps all calls to getDefaultHost to 
go through a step of removing trailing period.


This addresses bug HBASE-4109.
    https://issues.apache.org/jira/browse/HBASE-4109


Diffs
-----

  src/main/java/org/apache/hadoop/hbase/util/Strings.java c2cad2e 
  src/main/java/org/apache/hadoop/hbase/zookeeper/HQuorumPeer.java d551c6f 
  src/main/java/org/apache/hadoop/hbase/regionserver/HRegionServer.java 2d033f3 
  src/main/java/org/apache/hadoop/hbase/master/HMaster.java c91523a 

Diff: https://reviews.apache.org/r/1139/diff


Testing
-------


Thanks,

Shrijeet



> Hostname returned via reverse dns lookup contains trailing period if 
> configured interface is not "default"
> ----------------------------------------------------------------------------------------------------------
>
>                 Key: HBASE-4109
>                 URL: https://issues.apache.org/jira/browse/HBASE-4109
>             Project: HBase
>          Issue Type: Bug
>          Components: master, regionserver
>    Affects Versions: 0.90.3
>            Reporter: Shrijeet Paliwal
>             Fix For: 0.90.4
>
>         Attachments: 
> 0001-HBASE-4109-Sanitize-hostname-returned-from-DNS-class.patch
>
>
> If you are using an interface anything other than 'default' (literally that 
> keyword) DNS.java 's getDefaultHost will return a string which will 
> have a trailing period at the end. It seems javadoc of reverseDns in DNS.java 
> (see below) is conflicting with what that function is actually doing. 
> It is returning a PTR record while claims it returns a hostname. The PTR 
> record always has period at the end , RFC:  
> http://irbs.net/bog-4.9.5/bog47.html 
> We make call to DNS.getDefaultHost at more than one places and treat that as 
> actual hostname.
> Quoting HRegionServer for example
> {code}
> String machineName = DNS.getDefaultHost(conf.get(
>         "hbase.regionserver.dns.interface", "default"), conf.get(
>         "hbase.regionserver.dns.nameserver", "default"));
> {code}
> This causes inconsistencies. An example of such inconsistency was observed 
> while debugging the issue "Regions not getting reassigned if RS is brought 
> down". More here 
> http://search-hadoop.com/m/CANUA1qRCkQ1 
> We may want to sanitize the string returned from DNS class. Or better we can 
> take a path of overhauling the way we do DNS name matching all over.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to