You are viewing a plain text version of this content. The canonical link for it is here.
Posted to yarn-issues@hadoop.apache.org by "Tianyin Xu (JIRA)" <ji...@apache.org> on 2016/10/27 23:01:03 UTC

[jira] [Created] (YARN-5793) Trim configuration values in DockerLinuxContainerRuntime

Tianyin Xu created YARN-5793:
--------------------------------

             Summary: Trim configuration values in DockerLinuxContainerRuntime
                 Key: YARN-5793
                 URL: https://issues.apache.org/jira/browse/YARN-5793
             Project: Hadoop YARN
          Issue Type: Bug
          Components: nodemanager
    Affects Versions: 3.0.0-alpha1
            Reporter: Tianyin Xu
            Priority: Minor


The current implementation of {{DockerLinuxContainerRuntime}} does not follow the practice of trimming configuration values. This leads to errors if users set values containing space or newline.

see the following YARN commits as reference:
YARN-3395. FairScheduler: Trim whitespaces when using username for queuename.
YARN-2869. CapacityScheduler should trim sub queue names when parse configuration.
YARN-2843. Fixed NodeLabelsManager to trim inputs for hosts and labels so as to make them work correctly.

and many other Hadoop/HDFS commits (just list a few):
HDFS-9708. FSNamesystem.initAuditLoggers() doesn't trim classnames
HDFS-2799. Trim fs.checkpoint.dir values.
HADOOP-6578. Configuration should trim whitespace around a lot of value types
HADOOP-6534. Trim whitespace from directory lists initializing

Patch is available against trunk
{code:title=DockerLinuxContainerRuntime.java|borderStyle=solid}
@@ -219,9 +219,9 @@ public void initialize(Configuration conf)
     dockerClient = new DockerClient(conf);
     allowedNetworks.clear();
     allowedNetworks.addAll(Arrays.asList(
-        conf.getStrings(YarnConfiguration.NM_DOCKER_ALLOWED_CONTAINER_NETWORKS,
+        conf.getTrimmedStrings(YarnConfiguration.NM_DOCKER_ALLOWED_CONTAINER_NETWORKS,
             YarnConfiguration.DEFAULT_NM_DOCKER_ALLOWED_CONTAINER_NETWORKS)));
-    defaultNetwork = conf.get(
+    defaultNetwork = conf.getTrimmed(
         YarnConfiguration.NM_DOCKER_DEFAULT_CONTAINER_NETWORK,
         YarnConfiguration.DEFAULT_NM_DOCKER_DEFAULT_CONTAINER_NETWORK);
 
@@ -237,7 +237,7 @@ public void initialize(Configuration conf)
       throw new ContainerExecutionException(message);
     }
 
-    privilegedContainersAcl = new AccessControlList(conf.get(
+    privilegedContainersAcl = new AccessControlList(conf.getTrimmed(
         YarnConfiguration.NM_DOCKER_PRIVILEGED_CONTAINERS_ACL,
         YarnConfiguration.DEFAULT_NM_DOCKER_PRIVILEGED_CONTAINERS_ACL));
   }
@@ -439,7 +439,7 @@ public void launchContainer(ContainerRuntimeContext ctx)
         LOCALIZED_RESOURCES);
     @SuppressWarnings("unchecked")
     List<String> userLocalDirs = ctx.getExecutionAttribute(USER_LOCAL_DIRS);
-    Set<String> capabilities = new HashSet<>(Arrays.asList(conf.getStrings(
+    Set<String> capabilities = new HashSet<>(Arrays.asList(conf.getTrimmedStrings(
         YarnConfiguration.NM_DOCKER_CONTAINER_CAPABILITIES,
         YarnConfiguration.DEFAULT_NM_DOCKER_CONTAINER_CAPABILITIES)));
{code}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

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