[ 
https://issues.apache.org/jira/browse/YARN-1305?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13796927#comment-13796927
 ] 

Tsuyoshi OZAWA commented on YARN-1305:
--------------------------------------

Thank you for review, Bikas. I got this bug when both 
yarn.resourcemanager.ha.enabled and yarn.resourcemanager.ha.id are set but 
HAUtil.RPC_ADDRESS_CONF_KEYS with RM id are empty like this: 
https://gist.github.com/oza/6982570.
We should set default values of HAUtil.RPC_ADDRESS_CONF_KEYS in 
getConfValueForRMInstance().

{code}
  private static String getConfValueForRMInstance(String prefix,
                                                  Configuration conf, String 
defaultValue) {
    String confKey = getConfKeyForRMInstance(prefix, conf);
    String retVal = conf.get(confKey, defaultValue);
    ....
    return retVal;
  }
{code}

> Can we make the error message more generic?

We can do it with Exception#getMessage().
{code}
    if (confKey == null) {
        errmsg = iae.getMessage();
    }
    ...
    throwBadConfigurationException(errmsg);
{code}

> Why do we need to log the current conf value in the error?

As you indicated, confValue must be null in this code path, so we don't need to 
log confValue. I'll remove it from logging.

> RMHAProtocolService#serviceInit should handle HAUtil's 
> IllegalArgumentException
> -------------------------------------------------------------------------------
>
>                 Key: YARN-1305
>                 URL: https://issues.apache.org/jira/browse/YARN-1305
>             Project: Hadoop YARN
>          Issue Type: Sub-task
>          Components: resourcemanager
>    Affects Versions: 2.2.1
>            Reporter: Tsuyoshi OZAWA
>            Assignee: Tsuyoshi OZAWA
>              Labels: ha
>         Attachments: YARN-1305.1.patch, YARN-1305.2.patch
>
>
> When yarn.resourcemanager.ha.enabled is true, RMHAProtocolService#serviceInit 
> calls HAUtil.setAllRpcAddresses. If the configuration values are null, it 
> just throws IllegalArgumentException.
> It's messy to analyse which keys are null, so we should handle it and log the 
> name of keys which are null.
> A current log dump is as follows:
> {code}
> 2013-10-15 06:24:53,431 INFO 
> org.apache.hadoop.yarn.server.resourcemanager.ResourceManager: registered 
> UNIX signal handlers for [TERM, HUP, INT]
> 2013-10-15 06:24:54,203 INFO org.apache.hadoop.service.AbstractService: 
> Service RMHAProtocolService failed in state INITED; cause: 
> java.lang.IllegalArgumentException: Property value must not be null
> java.lang.IllegalArgumentException: Property value must not be null
>         at 
> com.google.common.base.Preconditions.checkArgument(Preconditions.java:88)
>         at org.apache.hadoop.conf.Configuration.set(Configuration.java:816)
>         at org.apache.hadoop.conf.Configuration.set(Configuration.java:798)
>         at org.apache.hadoop.yarn.conf.HAUtil.setConfValue(HAUtil.java:100)
>         at 
> org.apache.hadoop.yarn.conf.HAUtil.setAllRpcAddresses(HAUtil.java:105)
>         at 
> org.apache.hadoop.yarn.server.resourcemanager.RMHAProtocolService.serviceInit(RMHAProtocolService.java:60)
>         at 
> org.apache.hadoop.service.AbstractService.init(AbstractService.java:163)
>         at 
> org.apache.hadoop.service.CompositeService.serviceInit(CompositeService.java:108)
>         at 
> org.apache.hadoop.yarn.server.resourcemanager.ResourceManager.serviceInit(ResourceManager.java:187)
>         at 
> org.apache.hadoop.service.AbstractService.init(AbstractService.java:163)
>         at 
> org.apache.hadoop.yarn.server.resourcemanager.ResourceManager.main(ResourceManager.java:940)
> {code}



--
This message was sent by Atlassian JIRA
(v6.1#6144)

Reply via email to