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

Kihwal Lee updated HDFS-6622:
-----------------------------

    Description: 
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.

  was:
While investigating HDFS-6681, 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.


> 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
>
> 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