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
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
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.
|Assignee||Shrijeet Paliwal [ shrijeet ]|
|Status||Patch Available [ 10002 ]||Resolved [ 5 ]|
|Resolution||Fixed [ 1 ]|
|Status||Open [ 1 ]||Patch Available [ 10002 ]|
|Field||Original Value||New Value|
|Attachment||0001-HBASE-4109-Sanitize-hostname-returned-from-DNS-class.patch [ 12486707 ]|