Details
-
Improvement
-
Status: Resolved
-
Major
-
Resolution: Not A Problem
-
None
-
None
-
None
Description
By default on creating a folder1 will have 6 acl entries . On top of that assigning acl on a folder1 exceeds 32 , then unable to assign acls for a group/user to folder1.
2014-11-20 18:55:06,553 ERROR [qtp1279235236-17 - /rolexml/role/modrole] Error occured while setting permissions for Resource:[ hdfs://hacluster/folder1 ] and Error message is : Invalid ACL: ACL has 33 entries, which exceeds maximum of 32. at org.apache.hadoop.hdfs.server.namenode.AclTransformation.buildAndValidateAcl(AclTransformation.java:274) at org.apache.hadoop.hdfs.server.namenode.AclTransformation.mergeAclEntries(AclTransformation.java:181) at org.apache.hadoop.hdfs.server.namenode.FSDirectory.unprotectedModifyAclEntries(FSDirectory.java:2771) at org.apache.hadoop.hdfs.server.namenode.FSDirectory.modifyAclEntries(FSDirectory.java:2757) at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.modifyAclEntries(FSNamesystem.java:7734)
Here value 32 is hardcoded , which can be made user configurable.
private static List buildAndValidateAcl(ArrayList aclBuilder) throws AclException { if(aclBuilder.size() > 32) throw new AclException((new StringBuilder()).append("Invalid ACL: ACL has ").append(aclBuilder.size()).append(" entries, which exceeds maximum of ").append(32).append(".").toString()); : : }