Przeglądaj źródła

HADOOP-16114. NetUtils#canonicalizeHost gives different value for same host.

Author:    Praveen Krishna <praveenkrishna@tutanota.com>
Praveen Krishna 6 lat temu
rodzic
commit
2b94e51a8f

+ 3 - 1
hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/net/NetUtils.java

@@ -288,8 +288,10 @@ public class NetUtils {
     if (fqHost == null) {
       try {
         fqHost = SecurityUtil.getByName(host).getHostName();
-        // slight race condition, but won't hurt
         canonicalizedHostCache.putIfAbsent(host, fqHost);
+        // ensures that we won't return a canonicalized stale (non-cached)
+        // host name for a given host
+        fqHost = canonicalizedHostCache.get(host);
       } catch (UnknownHostException e) {
         fqHost = host;
       }