YARN-8399. NodeManager is giving 403 GSS exception post upgrade to 3.1 in 
secure mode. Contributed by Sunil Govindan.

(cherry picked from commit 58bc34f1e347034af566d6968eb3b3439a91cc74)


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

Branch: refs/remotes/origin/branch-3.1
Commit: a95f2169450496a0be04871ad9e37be8d08616fd
Parents: 630f43f
Author: Rohith Sharma K S <rohithsharm...@apache.org>
Authored: Thu Jun 7 10:25:47 2018 +0530
Committer: Rohith Sharma K S <rohithsharm...@apache.org>
Committed: Thu Jun 7 10:27:08 2018 +0530

----------------------------------------------------------------------
 .../containermanager/AuxServices.java           |  6 +--
 .../containermanager/TestAuxServices.java       | 48 ++++++++++++++++++++
 2 files changed, 51 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hadoop/blob/a95f2169/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/containermanager/AuxServices.java
----------------------------------------------------------------------
diff --git 
a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/containermanager/AuxServices.java
 
b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/containermanager/AuxServices.java
index 3fe3cfd..77c4dd9 100644
--- 
a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/containermanager/AuxServices.java
+++ 
b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/containermanager/AuxServices.java
@@ -262,7 +262,7 @@ public class AuxServices extends AbstractService
               }
             }
             s = AuxiliaryServiceWithCustomClassLoader.getInstance(
-                conf, className, dest.toString());
+                new Configuration(conf), className, dest.toString());
           }
           LOG.info("The aux service:" + sName
               + " are using the custom classloader");
@@ -273,7 +273,7 @@ public class AuxServices extends AbstractService
           if (sClass == null) {
             throw new RuntimeException("No class defined for " + sName);
           }
-          s = ReflectionUtils.newInstance(sClass, conf);
+          s = ReflectionUtils.newInstance(sClass, new Configuration(conf));
         }
         if (s == null) {
           throw new RuntimeException("No object created for " + sName);
@@ -294,7 +294,7 @@ public class AuxServices extends AbstractService
           stateStoreFs.mkdirs(storePath, storeDirPerms);
           s.setRecoveryPath(storePath);
         }
-        s.init(conf);
+        s.init(new Configuration(conf));
       } catch (RuntimeException e) {
         LOG.error("Failed to initialize " + sName, e);
         throw e;

http://git-wip-us.apache.org/repos/asf/hadoop/blob/a95f2169/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/test/java/org/apache/hadoop/yarn/server/nodemanager/containermanager/TestAuxServices.java
----------------------------------------------------------------------
diff --git 
a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/test/java/org/apache/hadoop/yarn/server/nodemanager/containermanager/TestAuxServices.java
 
b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/test/java/org/apache/hadoop/yarn/server/nodemanager/containermanager/TestAuxServices.java
index fcf92b5..ca0b32a 100644
--- 
a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/test/java/org/apache/hadoop/yarn/server/nodemanager/containermanager/TestAuxServices.java
+++ 
b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/test/java/org/apache/hadoop/yarn/server/nodemanager/containermanager/TestAuxServices.java
@@ -678,4 +678,52 @@ public class TestAuxServices {
       super("RecoverableServiceB", "Bsrv");
     }
   }
+
+  static class ConfChangeAuxService extends AuxiliaryService
+      implements Service {
+
+    ConfChangeAuxService() {
+      super("ConfChangeAuxService");
+    }
+
+    @Override
+    protected void serviceInit(Configuration conf) throws Exception {
+      conf.set("dummyConfig", "changedTestValue");
+      super.serviceInit(conf);
+    }
+
+    @Override
+    public void initializeApplication(
+        ApplicationInitializationContext initAppContext) {
+    }
+
+    @Override
+    public void stopApplication(ApplicationTerminationContext stopAppContext) {
+    }
+
+    @Override
+    public ByteBuffer getMetaData() {
+      return null;
+    }
+  }
+
+  @Test
+  public void testAuxServicesConfChange() {
+    Configuration conf = new Configuration();
+    conf.setStrings(YarnConfiguration.NM_AUX_SERVICES,
+        new String[]{"ConfChangeAuxService"});
+    conf.setClass(String.format(YarnConfiguration.NM_AUX_SERVICE_FMT,
+        "ConfChangeAuxService"), ConfChangeAuxService.class, Service.class);
+    AuxServices aux = new AuxServices(MOCK_AUX_PATH_HANDLER, MOCK_CONTEXT,
+        MOCK_DEL_SERVICE);
+    conf.set("dummyConfig", "testValue");
+    aux.init(conf);
+    aux.start();
+    for (AuxiliaryService s : aux.getServices()) {
+      assertEquals(STARTED, s.getServiceState());
+      assertEquals(conf.get("dummyConfig"), "testValue");
+    }
+
+    aux.stop();
+  }
 }


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

Reply via email to