[
https://issues.apache.org/jira/browse/YARN-2894?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14224851#comment-14224851
]
Rohith commented on YARN-2894:
------------------------------
The problem is due to RMWebApp is started and kept for thought jvm life time
nevertheless of RM state change to active or standby. For AppBlock rendering ,
aclManager and queueAclManager instance are injected at the time of web service
start for checkAccess users per application. {{aclManager}} does not find the
application id in its and throw NPE. For the user, web page can not be
accessible.
> When ACL's are enabled, if RM switches then application can not be viewed
> from web.
> -----------------------------------------------------------------------------------
>
> Key: YARN-2894
> URL: https://issues.apache.org/jira/browse/YARN-2894
> Project: Hadoop YARN
> Issue Type: Bug
> Components: resourcemanager
> Affects Versions: 2.6.0
> Reporter: Rohith
> Assignee: Rohith
> Fix For: 2.7.0
>
>
> Binding aclManager to RMWebApp would cause problem if RM is switched. There
> could be some validation check may fail.
> I think , we should not bind aclManager for RMWebApp, instead we should get
> from RM instance.
> In RMWebApp,
> {code}
> if (rm != null) {
> bind(ResourceManager.class).toInstance(rm);
> bind(RMContext.class).toInstance(rm.getRMContext());
> bind(ApplicationACLsManager.class).toInstance(
> rm.getApplicationACLsManager());
> bind(QueueACLsManager.class).toInstance(rm.getQueueACLsManager());
> }
> {code}
> and in AppBlock#render below check may fail(Need to test and confirm)
> {code}
> if (callerUGI != null
> && !(this.aclsManager.checkAccess(callerUGI,
> ApplicationAccessType.VIEW_APP, app.getUser(), appID) ||
> this.queueACLsManager.checkAccess(callerUGI,
> QueueACL.ADMINISTER_QUEUE, app.getQueue()))) {
> puts("You (User " + remoteUser
> + ") are not authorized to view application " + appID);
> return;
> }
> {code}
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)