[ 
https://issues.apache.org/jira/browse/YARN-5793?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Eric Badger updated YARN-5793:
------------------------------
    Labels: Docker  (was: )

> Trim configuration values in DockerLinuxContainerRuntime
> --------------------------------------------------------
>
>                 Key: YARN-5793
>                 URL: https://issues.apache.org/jira/browse/YARN-5793
>             Project: Hadoop YARN
>          Issue Type: Sub-task
>          Components: nodemanager
>    Affects Versions: 3.0.0-alpha1
>            Reporter: Tianyin Xu
>            Assignee: Tianyin Xu
>            Priority: Minor
>              Labels: Docker
>             Fix For: 2.9.0, 3.0.0-alpha2
>
>         Attachments: YARN-5793.0000.patch, YARN-5793.0001.patch
>
>
> 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
(v7.6.3#76005)

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

Reply via email to