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

Konstantin Shvachko commented on HDFS-4883:
-------------------------------------------

I see that addBlock() has a new parameter fileId while complete() doesn't have 
it.
In current implementation neither of the two need the parameter, because both 
use the path to find the file INode. But addBlock() verifies that the fileId 
passed as the parameter is the same as in the inode. While complete() uses 
GRANDFATHER_INODE_ID, which essentially means don't check fileId.
I don't know what the plan is, but if it is to eventually use fileId as an 
identifier of the file INode for open file, then it will make sense to use it 
in both addBlock() and complete(). And if we will want to change the 
implementation without changing wire APIs, we should probably add fileId 
parameter to complete() now.
This will also enable verification that we are closing the correct file by 
checking the real fileId in complete(), same as in addBlock().
Does it make sense?
                
> complete() should verify fileId
> -------------------------------
>
>                 Key: HDFS-4883
>                 URL: https://issues.apache.org/jira/browse/HDFS-4883
>             Project: Hadoop HDFS
>          Issue Type: Bug
>          Components: namenode
>    Affects Versions: 2.1.0-beta
>            Reporter: Konstantin Shvachko
>
> It seems inconsistent that complete() avoids verifying real fileId, while 
> addBlock() does it meticulously.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to