diff --git hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/ContainerExecutor.java hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/ContainerExecutor.java index 61e43641005..55836c575c9 100644 --- hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/ContainerExecutor.java +++ hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/ContainerExecutor.java @@ -431,16 +431,6 @@ public void writeLaunchEnv(OutputStream out, Map environment, sb.env(env.getKey(), env.getValue()); } } - // Add the whitelist vars to the environment. Do this after writing - // environment variables so they are not written twice. - for(String var : whitelistVars) { - if (!environment.containsKey(var)) { - String val = getNMEnvVar(var); - if (val != null) { - environment.put(var, val); - } - } - } } if (resources != null) { diff --git hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/test/java/org/apache/hadoop/yarn/server/nodemanager/containermanager/launcher/TestContainerLaunch.java hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/test/java/org/apache/hadoop/yarn/server/nodemanager/containermanager/launcher/TestContainerLaunch.java index c1f426862ab..e0485772197 100644 --- hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/test/java/org/apache/hadoop/yarn/server/nodemanager/containermanager/launcher/TestContainerLaunch.java +++ hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/test/java/org/apache/hadoop/yarn/server/nodemanager/containermanager/launcher/TestContainerLaunch.java @@ -476,10 +476,15 @@ protected String getNMEnvVar(String varname) { for (String envVar : env.keySet()) { Assert.assertTrue(shellContent.contains(envVar + "=")); } + // The whitelist vars should not have been added to env + // They should only be in the launch script for (String wlVar : whitelistVars) { + Assert.assertFalse(env.containsKey(wlVar)); Assert.assertTrue(shellContent.contains(wlVar + "=")); } + // Non-whitelist nm vars should be in neither env nor in launch script for (String nwlVar : nonWhiteListEnv) { + Assert.assertFalse(env.containsKey(nwlVar)); Assert.assertFalse(shellContent.contains(nwlVar + "=")); } // Explicitly Set NM vars should be before user vars