You are viewing a plain text version of this content. The canonical link for it is here.
Posted to common-commits@hadoop.apache.org by br...@apache.org on 2018/10/30 06:02:57 UTC

[27/50] [abbrv] hadoop git commit: HADOOP-15864. Job submitter / executor fail when SBN domain name can not resolved. Contributed by He Xiaoqiao.

HADOOP-15864. Job submitter / executor fail when SBN domain name can not resolved. Contributed by He Xiaoqiao.


Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo
Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/44b0dc38
Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/44b0dc38
Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/44b0dc38

Branch: refs/heads/HDFS-13891
Commit: 44b0dc3859d4cfe9571fadd4962602053e4cd41f
Parents: 797addb
Author: Wei-Chiu Chuang <we...@apache.org>
Authored: Thu Oct 25 09:33:31 2018 -0700
Committer: Brahma Reddy Battula <br...@apache.org>
Committed: Tue Oct 30 11:31:17 2018 +0530

----------------------------------------------------------------------
 .../apache/hadoop/security/SecurityUtil.java    |  9 ++++----
 .../namenode/ha/TestDelegationTokensWithHA.java | 23 ++++++++++++++++++++
 2 files changed, 28 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hadoop/blob/44b0dc38/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/security/SecurityUtil.java
----------------------------------------------------------------------
diff --git a/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/security/SecurityUtil.java b/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/security/SecurityUtil.java
index aa12b93..b573234 100644
--- a/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/security/SecurityUtil.java
+++ b/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/security/SecurityUtil.java
@@ -424,7 +424,7 @@ public final class SecurityUtil {
    */
   public static void setTokenService(Token<?> token, InetSocketAddress addr) {
     Text service = buildTokenService(addr);
-    if (token != null) {
+    if (token != null && service != null) {
       token.setService(service);
       if (LOG.isDebugEnabled()) {
         LOG.debug("Acquired token "+token);  // Token#toString() prints service
@@ -444,9 +444,10 @@ public final class SecurityUtil {
     String host = null;
     if (useIpForTokenService) {
       if (addr.isUnresolved()) { // host has no ip address
-        throw new IllegalArgumentException(
-            new UnknownHostException(addr.getHostName())
-        );
+        LOG.warn("unable to resolve host name " + addr
+            + ". Failure to construct a correct token service "
+            + "name may result in operation failures");
+        return null;
       }
       host = addr.getAddress().getHostAddress();
     } else {

http://git-wip-us.apache.org/repos/asf/hadoop/blob/44b0dc38/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/ha/TestDelegationTokensWithHA.java
----------------------------------------------------------------------
diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/ha/TestDelegationTokensWithHA.java b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/ha/TestDelegationTokensWithHA.java
index 7076ec6..e78cee9 100644
--- a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/ha/TestDelegationTokensWithHA.java
+++ b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/ha/TestDelegationTokensWithHA.java
@@ -332,6 +332,29 @@ public class TestDelegationTokensWithHA {
     }    
   }
 
+  @Test(timeout = 300000)
+  public void testHAUtilClonesDTsDomainNameResolvedFail() throws Exception {
+    final Token<DelegationTokenIdentifier> token =
+        getDelegationToken(fs, "JobTracker");
+
+    UserGroupInformation ugi = UserGroupInformation.createRemoteUser("test");
+
+    URI haUri = new URI("hdfs://my-ha-uri/");
+    token.setService(HAUtilClient.buildTokenServiceForLogicalUri(haUri,
+        HdfsConstants.HDFS_URI_SCHEME));
+    ugi.addToken(token);
+
+    Collection<InetSocketAddress> nnAddrs = new HashSet<InetSocketAddress>();
+    nnAddrs.add(new InetSocketAddress("domainname.doesnot.exist",
+        nn0.getNameNodeAddress().getPort()));
+    nnAddrs.add(new InetSocketAddress("localhost",
+        nn1.getNameNodeAddress().getPort()));
+    HAUtilClient.cloneDelegationTokenForLogicalUri(ugi, haUri, nnAddrs);
+
+    Collection<Token<? extends TokenIdentifier>> tokens = ugi.getTokens();
+    assertEquals(3, tokens.size());
+  }
+
   /**
    * HDFS-3062: DistributedFileSystem.getCanonicalServiceName() throws an
    * exception if the URI is a logical URI. This bug fails the combination of


---------------------------------------------------------------------
To unsubscribe, e-mail: common-commits-unsubscribe@hadoop.apache.org
For additional commands, e-mail: common-commits-help@hadoop.apache.org