Gour Saha created SLIDER-462:
--------------------------------

             Summary: 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
            Reporter: Gour Saha


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)

Reply via email to