DNS#getHosts() fallback leads to mix of network-interface addresse in case reverse lookup fails -----------------------------------------------------------------------------------------------
Key: HADOOP-6797 URL: https://issues.apache.org/jira/browse/HADOOP-6797 Project: Hadoop Common Issue Type: Bug Affects Versions: 0.20.2 Reporter: Johannes Zillmann org.apache.hadoop.net.DNS#getHosts(): {noformat} public static String[] getHosts(String strInterface, String nameserver) throws UnknownHostException { String[] ips = getIPs(strInterface); Vector<String> hosts = new Vector<String>(); for (int ctr = 0; ctr < ips.length; ctr++) try { hosts.add(reverseDns(InetAddress.getByName(ips[ctr]), nameserver)); } catch (Exception e) { } if (hosts.size() == 0) return new String[] { InetAddress.getLocalHost().getCanonicalHostName() }; else return hosts.toArray(new String[] {}); } {noformat} I have the situation where i choosing eth1 as network interface (fs.datanode.dns.interface and mapred.tasktracker.dns.interface) which is the internal interface. The reverse lookup fails for eth1 so the fallback: {noformat} if (hosts.size() == 0) return new String[] { InetAddress.getLocalHost().getCanonicalHostName() }; {noformat} comes to action. The dns of eth0 is returned which is the external interface. This leads in my case to a combination of internal ip and external dns as the default ip/host. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.