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

Tsz Wo Nicholas Sze commented on HDFS-7957:
-------------------------------------------

In INodeFile.computeQuotaDeltaForTruncate, when sf != null, I think the code 
can be simplified to below:
{code}
    if (sf != null) {
      FileDiff diff = sf.getDiffs().getLast();
      if (diff != null) {
        final BlockInfoContiguous[] last = diff.getBlocks();
        if (last != null) {
          for (int i = (onBoundary ? n : n-1);
              i < blocks.length && i < last.length && last[i].equals(blocks[i]);
              i++) {
            truncateSize -= blocks[i].getNumBytes();
          }
        }
      }
    }
{code}
The file could be appended and truncated previously so that it is impossible to 
have last\[i].equals(blocks\[j]) for i != j.  Also if 
last\[i].equals(blocks\[i]) == false for some i, then 
last\[j].equals(blocks\[j]) == false for all j >= i.  Do you agree?



> Truncate should verify quota before making changes
> --------------------------------------------------
>
>                 Key: HDFS-7957
>                 URL: https://issues.apache.org/jira/browse/HDFS-7957
>             Project: Hadoop HDFS
>          Issue Type: Bug
>          Components: namenode
>    Affects Versions: 2.7.0
>            Reporter: Jing Zhao
>            Assignee: Jing Zhao
>            Priority: Critical
>         Attachments: HDFS-7957.000.patch, HDFS-7957.001.patch
>
>
> This is a similar issue with HDFS-7587: for truncate we should also verify 
> quota in the beginning and update quota in the end.



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

Reply via email to