[
https://issues.apache.org/jira/browse/SLIDER-462?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Steve Loughran reopened SLIDER-462:
-----------------------------------
> Slider flex with an invalid component/role name actually tries to add the new
> role
> ----------------------------------------------------------------------------------
>
> Key: SLIDER-462
> URL: https://issues.apache.org/jira/browse/SLIDER-462
> Project: Slider
> Issue Type: Bug
> Affects Versions: Slider 0.50
> Reporter: Gour Saha
> Assignee: Gour Saha
> Fix For: Slider 0.60
>
>
> Setup -
> A cluster with HBase deployed using Slider
> Ran the following -
> {noformat}
> ./slider flex cl1 --component INVALID_COMPONENT_NAME 2
> {noformat}
> It threw an exception on the console as below -
> {color:red}
> {noformat}
> slider_home = "/vagrant/slider_home/slider-0.51.0-incubating-SNAPSHOT"
> slider_jvm_opts = "-Djava.net.preferIPv4Stack=true -Djava.awt.headless=true
> -Xmx256m
> -Djava.confdir=/vagrant/slider_home/slider-0.51.0-incubating-SNAPSHOT/conf"
> classpath =
> "/vagrant/slider_home/slider-0.51.0-incubating-SNAPSHOT/lib/*:/vagrant/slider_home/slider-0.51.0-incubating-SNAPSHOT/conf::"
> command is java -Djava.net.preferIPv4Stack=true -Djava.awt.headless=true
> -Xmx256m
> -Djava.confdir=/vagrant/slider_home/slider-0.51.0-incubating-SNAPSHOT/conf
> --classpath
> "/vagrant/slider_home/slider-0.51.0-incubating-SNAPSHOT/lib/*:/vagrant/slider_home/slider-0.51.0-incubating-SNAPSHOT/conf::"
> org.apache.slider.Slider flex cl1 --component INVALID_COMPONENT_NAME 2
> 2014-09-26 21:04:42,353 [main] INFO client.RMProxy - Connecting to
> ResourceManager at c6410.ambari.apache.org/192.168.64.110:8050
> 2014-09-26 21:04:45,949 [main] INFO client.SliderClient - Flexing running
> cluster
> Exception: Missing option yarn.role.priority
> at
> org.apache.slider.core.conf.MapOperations.getMandatoryOption(MapOperations.java:105)
> at
> org.apache.slider.server.appmaster.state.AppState.createDynamicProviderRole(AppState.java:585)
> at
> org.apache.slider.server.appmaster.state.AppState.buildRoleRequirementsFromResources(AppState.java:695)
> at
> org.apache.slider.server.appmaster.state.AppState.updateResourceDefinitions(AppState.java:657)
> at
> org.apache.slider.server.appmaster.SliderAppMaster.flexCluster(SliderAppMaster.java:1230)
> at
> org.apache.slider.server.appmaster.SliderAppMaster.flexCluster(SliderAppMaster.java:1419)
> at
> org.apache.slider.server.appmaster.rpc.SliderClusterProtocolPBImpl.flexCluster(SliderClusterProtocolPBImpl.java:68)
> at
> org.apache.slider.api.proto.SliderClusterAPI$SliderClusterProtocolPB$2.callBlockingMethod(SliderClusterAPI.java:262)
> at
> org.apache.hadoop.ipc.ProtobufRpcEngine$Server$ProtoBufRpcInvoker.call(ProtobufRpcEngine.java:619)
> at org.apache.hadoop.ipc.RPC$Server.call(RPC.java:962)
> at org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:2039)
> at org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:2035)
> at java.security.AccessController.doPrivileged(Native Method)
> at javax.security.auth.Subject.doAs(Subject.java:415)
> at
> org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1614)
> at org.apache.hadoop.ipc.Server$Handler.run(Server.java:2033)
> 2014-09-26 21:04:46,126 [main] ERROR main.ServiceLauncher - Exception:
> Missing option yarn.role.priority
> at
> org.apache.slider.core.conf.MapOperations.getMandatoryOption(MapOperations.java:105)
> at
> org.apache.slider.server.appmaster.state.AppState.createDynamicProviderRole(AppState.java:585)
> at
> org.apache.slider.server.appmaster.state.AppState.buildRoleRequirementsFromResources(AppState.java:695)
> at
> org.apache.slider.server.appmaster.state.AppState.updateResourceDefinitions(AppState.java:657)
> at
> org.apache.slider.server.appmaster.SliderAppMaster.flexCluster(SliderAppMaster.java:1230)
> at
> org.apache.slider.server.appmaster.SliderAppMaster.flexCluster(SliderAppMaster.java:1419)
> at
> org.apache.slider.server.appmaster.rpc.SliderClusterProtocolPBImpl.flexCluster(SliderClusterProtocolPBImpl.java:68)
> at
> org.apache.slider.api.proto.SliderClusterAPI$SliderClusterProtocolPB$2.callBlockingMethod(SliderClusterAPI.java:262)
> at
> org.apache.hadoop.ipc.ProtobufRpcEngine$Server$ProtoBufRpcInvoker.call(ProtobufRpcEngine.java:619)
> at org.apache.hadoop.ipc.RPC$Server.call(RPC.java:962)
> at org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:2039)
> at org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:2035)
> at java.security.AccessController.doPrivileged(Native Method)
> at javax.security.auth.Subject.doAs(Subject.java:415)
> at
> org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1614)
> at org.apache.hadoop.ipc.Server$Handler.run(Server.java:2033)
> org.apache.hadoop.ipc.RemoteException(org.apache.slider.core.exceptions.BadConfigException):
> Missing option yarn.role.priority
> at
> org.apache.slider.core.conf.MapOperations.getMandatoryOption(MapOperations.java:105)
> at
> org.apache.slider.server.appmaster.state.AppState.createDynamicProviderRole(AppState.java:585)
> at
> org.apache.slider.server.appmaster.state.AppState.buildRoleRequirementsFromResources(AppState.java:695)
> at
> org.apache.slider.server.appmaster.state.AppState.updateResourceDefinitions(AppState.java:657)
> at
> org.apache.slider.server.appmaster.SliderAppMaster.flexCluster(SliderAppMaster.java:1230)
> at
> org.apache.slider.server.appmaster.SliderAppMaster.flexCluster(SliderAppMaster.java:1419)
> at
> org.apache.slider.server.appmaster.rpc.SliderClusterProtocolPBImpl.flexCluster(SliderClusterProtocolPBImpl.java:68)
> at
> org.apache.slider.api.proto.SliderClusterAPI$SliderClusterProtocolPB$2.callBlockingMethod(SliderClusterAPI.java:262)
> at
> org.apache.hadoop.ipc.ProtobufRpcEngine$Server$ProtoBufRpcInvoker.call(ProtobufRpcEngine.java:619)
> at org.apache.hadoop.ipc.RPC$Server.call(RPC.java:962)
> at org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:2039)
> at org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:2035)
> at java.security.AccessController.doPrivileged(Native Method)
> at javax.security.auth.Subject.doAs(Subject.java:415)
> at
> org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1614)
> at org.apache.hadoop.ipc.Server$Handler.run(Server.java:2033)
> at org.apache.hadoop.ipc.Client.call(Client.java:1468)
> at org.apache.hadoop.ipc.Client.call(Client.java:1399)
> at
> org.apache.hadoop.ipc.ProtobufRpcEngine$Invoker.invoke(ProtobufRpcEngine.java:232)
> at com.sun.proxy.$Proxy27.flexCluster(Unknown Source)
> at
> org.apache.slider.server.appmaster.rpc.SliderClusterProtocolProxy.flexCluster(SliderClusterProtocolProxy.java:61)
> at
> org.apache.slider.client.SliderClusterOperations.flex(SliderClusterOperations.java:297)
> at org.apache.slider.client.SliderClient.flex(SliderClient.java:2079)
> at
> org.apache.slider.client.SliderClient.actionFlex(SliderClient.java:1620)
> at
> org.apache.slider.client.SliderClient.runService(SliderClient.java:315)
> at
> org.apache.slider.core.main.ServiceLauncher.launchService(ServiceLauncher.java:186)
> at
> org.apache.slider.core.main.ServiceLauncher.launchServiceRobustly(ServiceLauncher.java:471)
> at
> org.apache.slider.core.main.ServiceLauncher.launchServiceAndExit(ServiceLauncher.java:401)
> at
> org.apache.slider.core.main.ServiceLauncher.serviceMain(ServiceLauncher.java:626)
> at org.apache.slider.Slider.main(Slider.java:49)
> 2014-09-26 21:04:46,143 [main] INFO util.ExitUtil - Exiting with status 32
> {noformat}
> {color}
> After this a flex with even a valid and existing role name (say
> HBASE_REGIONSERVER) would fail with the same {{Missing option
> yarn.role.priority}} error.
> Exception in slider-err.txt -
> {color:red}
> {noformat}
> 14/09/26 21:00:23 INFO state.AppState: Adding new role INVALID_COMPONENT_NAME
> 14/09/26 21:00:23 INFO ipc.Server: IPC Server handler 1 on 41328, call
> org.apache.slider.server.appmaster.rpc.SliderClusterProtocolPB.flexCluster
> from 192.168.64.110:46947 Call#30 Retry#0
> org.apache.slider.core.exceptions.BadConfigException: Missing option
> yarn.role.priority
> at
> org.apache.slider.core.conf.MapOperations.getMandatoryOption(MapOperations.java:105)
> at
> org.apache.slider.server.appmaster.state.AppState.createDynamicProviderRole(AppState.java:585)
> at
> org.apache.slider.server.appmaster.state.AppState.buildRoleRequirementsFromResources(AppState.java:695)
> at
> org.apache.slider.server.appmaster.state.AppState.updateResourceDefinitions(AppState.java:657)
> at
> org.apache.slider.server.appmaster.SliderAppMaster.flexCluster(SliderAppMaster.java:1230)
> at
> org.apache.slider.server.appmaster.SliderAppMaster.flexCluster(SliderAppMaster.java:1419)
> at
> org.apache.slider.server.appmaster.rpc.SliderClusterProtocolPBImpl.flexCluster(SliderClusterProtocolPBImpl.java:68)
> at
> org.apache.slider.api.proto.SliderClusterAPI$SliderClusterProtocolPB$2.callBlockingMethod(SliderClusterAPI.java:262)
> at
> org.apache.hadoop.ipc.ProtobufRpcEngine$Server$ProtoBufRpcInvoker.call(ProtobufRpcEngine.java:619)
> at org.apache.hadoop.ipc.RPC$Server.call(RPC.java:962)
> at org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:2039)
> at org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:2035)
> at java.security.AccessController.doPrivileged(Native Method)
> at javax.security.auth.Subject.doAs(Subject.java:415)
> at
> org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1614)
> at org.apache.hadoop.ipc.Server$Handler.run(Server.java:2033)
> {noformat}
> {color}
> If Slider is not supposed to support dynamic addition of roles, it needs to
> validate of the existence of a role and block if a new/invalid role is
> provided.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)