[ https://issues.apache.org/jira/browse/YARN-3940?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14681880#comment-14681880 ]
Bibin A Chundatt commented on YARN-3940: ---------------------------------------- [~leftnoteasy] Thanks for comment I have small doubt please clarify Consider Queue A is having access to x,y Queue A Default label=y Queue B is having access to y Queue B Default label=y # Case 1: If application is submitted as below *-Dmapreduce.job.node-label-expression=y Queue=A* and try to move from Queue A to Queue B should work ?? {quote} Which is the dest.accessible-node-label is-super-set-of origin.accessible-node-label. {quote} But if we check as per above suggestion will not allow to move rt? Check should be context label of app is subset of dest-access-label queue then should allow to move.(0002-YARN-3940.patch) # Case 2: if application is submitted to queue ,default node label expression for queue is configured and label explicitly not mentioned then {{rmApp.getApplicationSubmissionContext().getNodeLabelExpression()==null}} so in this case the *source default queue nodelabel* should be subset of *dest.accessible-node-label* of queue if these two condition are not satisfying then check {{dest.accessible-node-label is-super-set-of origin.accessible-node-label}} . I support combination of above all since {{check resource usage by partition}} is not required. Please correct me if i am wrong. > Application moveToQueue should check NodeLabel permission > ---------------------------------------------------------- > > Key: YARN-3940 > URL: https://issues.apache.org/jira/browse/YARN-3940 > Project: Hadoop YARN > Issue Type: Sub-task > Components: resourcemanager > Reporter: Bibin A Chundatt > Assignee: Bibin A Chundatt > Attachments: 0001-YARN-3940.patch, 0002-YARN-3940.patch > > > Configure capacity scheduler > Configure node label an submit application {{queue=A Label=X}} > Move application to queue {{B}} and x is not having access > {code} > 2015-07-20 19:46:19,626 INFO > org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.CapacityScheduler: > Application attempt appattempt_1437385548409_0005_000001 released container > container_e08_1437385548409_0005_01_000002 on node: host: > host-10-19-92-117:64318 #containers=1 available=<memory:2560, vCores:15> > used=<memory:512, vCores:1> with event: KILL > 2015-07-20 19:46:20,970 WARN > org.apache.hadoop.yarn.server.resourcemanager.ApplicationMasterService: > Invalid resource ask by application appattempt_1437385548409_0005_000001 > org.apache.hadoop.yarn.exceptions.InvalidResourceRequestException: Invalid > resource request, queue=b1 doesn't have permission to access all labels in > resource request. labelExpression of resource request=x. Queue labels=y > at > org.apache.hadoop.yarn.server.resourcemanager.scheduler.SchedulerUtils.validateResourceRequest(SchedulerUtils.java:304) > at > org.apache.hadoop.yarn.server.resourcemanager.scheduler.SchedulerUtils.normalizeAndValidateRequest(SchedulerUtils.java:234) > at > org.apache.hadoop.yarn.server.resourcemanager.scheduler.SchedulerUtils.normalizeAndvalidateRequest(SchedulerUtils.java:250) > at > org.apache.hadoop.yarn.server.resourcemanager.RMServerUtils.normalizeAndValidateRequests(RMServerUtils.java:106) > at > org.apache.hadoop.yarn.server.resourcemanager.ApplicationMasterService.allocate(ApplicationMasterService.java:515) > at > org.apache.hadoop.yarn.api.impl.pb.service.ApplicationMasterProtocolPBServiceImpl.allocate(ApplicationMasterProtocolPBServiceImpl.java:60) > at > org.apache.hadoop.yarn.proto.ApplicationMasterProtocol$ApplicationMasterProtocolService$2.callBlockingMethod(ApplicationMasterProtocol.java:99) > at > org.apache.hadoop.ipc.ProtobufRpcEngine$Server$ProtoBufRpcInvoker.call(ProtobufRpcEngine.java:636) > at org.apache.hadoop.ipc.RPC$Server.call(RPC.java:976) > at org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:2174) > at org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:2170) > at java.security.AccessController.doPrivileged(Native Method) > at javax.security.auth.Subject.doAs(Subject.java:422) > at > org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1666) > at org.apache.hadoop.ipc.Server$Handler.run(Server.java:2168) > {code} > Same exception will be thrown till *heartbeat timeout* > Then application state will be updated to *FAILED* -- This message was sent by Atlassian JIRA (v6.3.4#6332)