You are viewing a plain text version of this content. The canonical link for it is here.
Posted to common-issues@hadoop.apache.org by "Jiayi Liu (Jira)" <ji...@apache.org> on 2020/03/16 07:07:00 UTC

[jira] [Updated] (HADOOP-16925) MetricsConfig incorrectly loads the configuration whose value is String list in the properties file

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

Jiayi Liu updated HADOOP-16925:
-------------------------------
    Description: 
[HADOOP-15549|https://jira.apache.org/jira/browse/HADOOP-15549]modified loadFirst function in MetricsConfig, and forget to set the DelimiterHandler, which caused that when loading the properties file, if the configured value is a String List, the value will not be loaded as a String Array, but just a String. For example, if we set
{code:java}
*.sink.ganglia.dmax=jvm.metrics.threadsBlocked=70,jvm.metrics.memHeapUsedM=40
{code}
in hadoop-metrics2.properties. If we use conf.getStringArray("*.sink.ganglia.dmax") to get the value list, we will get an array with single element, the content of which is "jvm.metrics.threadsBlocked=70,jvm.metrics.memHeapUsedM=40", which wil cause an error during loadGangliaConf. loadGangliaConf will assume that the value of jvm.metrics.threadsBlocked is 70, jvm.metrics.memHeapUsedM, which will cause an error "java.lang.NumberFormatException: For input string: "70,jvm.metrics.memHeapUsedM".


> MetricsConfig incorrectly loads the configuration whose value is String list in the properties file
> ---------------------------------------------------------------------------------------------------
>
>                 Key: HADOOP-16925
>                 URL: https://issues.apache.org/jira/browse/HADOOP-16925
>             Project: Hadoop Common
>          Issue Type: Bug
>          Components: metrics
>    Affects Versions: 3.1.3
>            Reporter: Jiayi Liu
>            Priority: Major
>
> [HADOOP-15549|https://jira.apache.org/jira/browse/HADOOP-15549]modified loadFirst function in MetricsConfig, and forget to set the DelimiterHandler, which caused that when loading the properties file, if the configured value is a String List, the value will not be loaded as a String Array, but just a String. For example, if we set
> {code:java}
> *.sink.ganglia.dmax=jvm.metrics.threadsBlocked=70,jvm.metrics.memHeapUsedM=40
> {code}
> in hadoop-metrics2.properties. If we use conf.getStringArray("*.sink.ganglia.dmax") to get the value list, we will get an array with single element, the content of which is "jvm.metrics.threadsBlocked=70,jvm.metrics.memHeapUsedM=40", which wil cause an error during loadGangliaConf. loadGangliaConf will assume that the value of jvm.metrics.threadsBlocked is 70, jvm.metrics.memHeapUsedM, which will cause an error "java.lang.NumberFormatException: For input string: "70,jvm.metrics.memHeapUsedM".



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

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