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

Colin Patrick McCabe commented on HDFS-6622:
--------------------------------------------

The fix here has a problem.  If the file is renamed while an addBlocks is going 
on, it will fail with {{throw new IOException("Cannot locate the original file. 
Original: "+ src + " , current: " + fileState.path);}}.

> Rename and AddBlock may race and produce invalid edits
> ------------------------------------------------------
>
>                 Key: HDFS-6622
>                 URL: https://issues.apache.org/jira/browse/HDFS-6622
>             Project: Hadoop HDFS
>          Issue Type: Bug
>    Affects Versions: 2.5.0
>            Reporter: Kihwal Lee
>            Priority: Blocker
>         Attachments: HDFS-6622.patch
>
>
> While investigating HDFS-6618, we have discovered that rename happening in 
> the middle of {{getAdditionalBlock()}} can lead to logging of invalid edit 
> entry.
> In  {{getAdditionalBlock()}} , the path is resolved once while holding the 
> read lock and the same resolved path will be used in the edit log in the 
> second half of the method holding the write lock.  If a rename happens in 
> between two locks, the path may no longer exist. 
> When replaying the {{AddBlockOp}}, it will fail with FileNotFound.



--
This message was sent by Atlassian JIRA
(v6.2#6252)

Reply via email to