[ 
https://issues.apache.org/jira/browse/HDFS-7582?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Chris Nauroth updated HDFS-7582:
--------------------------------
          Description: 
Current ACL limits are only on the total number of entries.

But there can be a situation where number of default entries for a directory 
will be more than half of the maximum entries, i.e. > 16.

In such case, under this parent directory only files can be created which will 
have ACLs inherited using parent's default entries.

But when directories are created, total number of entries will be more than the 
maximum allowed, because sub-directories copies both inherited ACLs as well as 
default entries.
Since currently there is no check while copying ACLs from default ACLs 
directory creation succeeds, but any modification (only permission on one entry 
also) on the same ACL will fail.

It would be better to enforce the maximum of 32 entries separately per access 
and default.  This would be consistent with our observations testing ACLs on 
other file systems, such as XFS and ext3.

  was:
Current ACL limits are only on the total number of entries.

But there can be a situation where number of default entries for a directory 
will be more than half of the maximum entries, i.e. > 16.

In such case, under this parent directory only files can be created which will 
have ACLs inherited using parent's default entries.

But when directories are created, total number of entries will be more than the 
maximum allowed, because sub-directories copies both inherited ACLs as well as 
default entries.
Since currently there is no check while copying ACLs from default ACLs 
directory creation succeeds, but any modification (only permission on one entry 
also) on the same ACL will fail.

So it would be better to restrict the default entries to 16.

     Target Version/s: 2.8.0  (was: 3.0.0)
    Affects Version/s: 2.4.0
              Summary: Enforce maximum number of ACL entries separately per 
access and default.  (was: Limit the number of default ACL entries to Half of 
maximum entries (16))

[~vinayrpet], this is starting to make sense to me now.  The spec I've referred 
to a lot (the same one you linked in your last comment) shows the maximum 
number of entries for a few different file systems.  Like you said, it doesn't 
specifically say anywhere that the limit is applied separately for access and 
default, but in practice, that's the behavior that both you and I have observed.

I had been thrown off by the fact that you found different results than I did 
from testing against a local file system.  Now I see the reason for that is you 
were testing with XFS (max 25 per access and default) and I was testing with 
ext3 (max 32 per access and default).

Now considering all of that, I agree with you that HDFS can make a change so 
that the limit is enforced separately per access and default.  This is 
backwards-compatible, because it does not reduce the number of ACL entries that 
can be used in existing deployments already.  I'm re-targeting this to 2.8.0 
and updating the description to show the new plan.

Thank you for the follow-up!

> Enforce maximum number of ACL entries separately per access and default.
> ------------------------------------------------------------------------
>
>                 Key: HDFS-7582
>                 URL: https://issues.apache.org/jira/browse/HDFS-7582
>             Project: Hadoop HDFS
>          Issue Type: Bug
>          Components: namenode
>    Affects Versions: 2.4.0
>            Reporter: Vinayakumar B
>            Assignee: Vinayakumar B
>         Attachments: HDFS-7582-001.patch
>
>
> Current ACL limits are only on the total number of entries.
> But there can be a situation where number of default entries for a directory 
> will be more than half of the maximum entries, i.e. > 16.
> In such case, under this parent directory only files can be created which 
> will have ACLs inherited using parent's default entries.
> But when directories are created, total number of entries will be more than 
> the maximum allowed, because sub-directories copies both inherited ACLs as 
> well as default entries.
> Since currently there is no check while copying ACLs from default ACLs 
> directory creation succeeds, but any modification (only permission on one 
> entry also) on the same ACL will fail.
> It would be better to enforce the maximum of 32 entries separately per access 
> and default.  This would be consistent with our observations testing ACLs on 
> other file systems, such as XFS and ext3.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to