[ 
https://issues.apache.org/jira/browse/YARN-8405?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16505866#comment-16505866
 ] 

Rohith Sharma K S commented on YARN-8405:
-----------------------------------------

thanks [~elgoiri] for the patch. 
# Since ZKCuratorManager is in util class, changing public API would be an 
issue. Instead of changing existing API, we can add new method with 
_createRootDirRecursively(String path, List<ACL> zkAcl)_

bq. do you have a test proposal?
You can change permission values to verify it. Note that 
TestZKRMStateStore#testZKRootPathAcls verifies for /rmstore/ZKRMStateRoot but 
not to /rmstore. Below is the test code that fails without patch. 
{code}
diff --git 
a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/recovery/TestZKRMStateStore.java
 
b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/recovery/TestZKRMStateStore.java
index 4cba2664d15..6c421157158 100644
--- 
a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/recovery/TestZKRMStateStore.java
+++ 
b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/recovery/TestZKRMStateStore.java
@@ -419,13 +419,14 @@ private static boolean verifyZKACL(String id, String 
scheme, int perm,
   public void testZKRootPathAcls() throws Exception {
     StateChangeRequestInfo req = new StateChangeRequestInfo(
         HAServiceProtocol.RequestSource.REQUEST_BY_USER);
-    String rootPath =
-        YarnConfiguration.DEFAULT_ZK_RM_STATE_STORE_PARENT_PATH + "/" +
-            ZKRMStateStore.ROOT_ZNODE_NAME;
+    String parentPath = 
YarnConfiguration.DEFAULT_ZK_RM_STATE_STORE_PARENT_PATH;
+    String rootPath = parentPath + "/" + ZKRMStateStore.ROOT_ZNODE_NAME;

     // Start RM with HA enabled
     Configuration conf =
         createHARMConf("rm1,rm2", "rm1", 1234, false, curatorTestingServer);
+    conf.set(YarnConfiguration.RM_ZK_ACL, "world:anyone:rwca");
+    int perm = 23;// rwca=1+2+4+16
     ResourceManager rm = new MockRM(conf);
     rm.start();
     rm.getRMContext().getRMAdminService().transitionToActive(req);
@@ -436,10 +437,16 @@ public void testZKRootPathAcls() throws Exception {
     verifyZKACL("digest", "localhost", Perms.CREATE | Perms.DELETE, acls);
     verifyZKACL(
         "world", "anyone", Perms.ALL ^ (Perms.CREATE | Perms.DELETE), acls);
+
+    acls =
+        ((ZKRMStateStore) 
rm.getRMContext().getStateStore()).getACL(parentPath);
+    assertEquals(1, acls.size());
+    assertEquals(perm, acls.get(0).getPerms());
     rm.close();

     // Now start RM with HA disabled. NoAuth Exception should not be thrown.
     conf.setBoolean(YarnConfiguration.RM_HA_ENABLED, false);
+    conf.set(YarnConfiguration.RM_ZK_ACL, YarnConfiguration.DEFAULT_RM_ZK_ACL);
     rm = new MockRM(conf);
     rm.start();
     rm.getRMContext().getRMAdminService().transitionToActive(req);
{code}

> RM zk-state-store.parent-path ACLs has been changed since HADOOP-14773
> ----------------------------------------------------------------------
>
>                 Key: YARN-8405
>                 URL: https://issues.apache.org/jira/browse/YARN-8405
>             Project: Hadoop YARN
>          Issue Type: Bug
>    Affects Versions: 2.9.0, 3.1.0
>            Reporter: Rohith Sharma K S
>            Priority: Major
>         Attachments: YARN-8405.000.patch, YARN-8405.001.patch, 
> YARN-8405.002.patch
>
>
> HADOOP-14773 changes the ACL for 
> yarn.resourcemanager.zk-state-store.parent-path. Earlier to HADOOP-14773, 
> /rmstore used set acls with yarn.resourcemanager.zk-acl value. But now  
> behavior changed from setting acls to parent node. As a result, parent node 
> /rmstore is set to default acl. 



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to