[
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