Uploaded image for project: 'Hadoop Common'
  1. Hadoop Common
  2. HADOOP-8134

DNS claims to return a hostname but returns a PTR record in some cases

VotersWatch issueWatchersCreate sub-taskLinkCloneUpdate Comment AuthorReplace String in CommentUpdate Comment VisibilityDelete Comments


    • Type: Bug
    • Status: Resolved
    • Priority: Minor
    • Resolution: Not A Problem
    • Affects Version/s: 0.23.0
    • Fix Version/s: None
    • Component/s: util
    • Labels:


      Per Shrijeet on HBASE-4109:

      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

      String machineName = DNS.getDefaultHost(conf.get(
      "hbase.regionserver.dns.interface", "default"), conf.get(
      "hbase.regionserver.dns.nameserver", "default"));

      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.

      While HBase has worked around the issue, we should fix the methods that aren't doing what they've intended.

      1. We fix the method. This may be an 'incompatible change'. But I do not know who outside of us uses DNS classes.
      2. We fix HDFS's DN at the calling end, cause that is affected by the trailing period in its reporting back to the NN as well (Just affects NN->DN weblinks, non critical).

      For 2, we can close this and open a HDFS JIRA.



        Issue Links



            • Assignee:
              qwertymaniac Harsh J


              • Created:

                Issue deployment