You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@slider.apache.org by "Gour Saha (JIRA)" <ji...@apache.org> on 2014/09/26 23:15:33 UTC

[jira] [Created] (SLIDER-462) Slider flex with an invalid component/role name actually tries to add the new role

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)