[ 
https://issues.apache.org/jira/browse/HADOOP-5741?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12708125#action_12708125
 ] 

Hairong Kuang commented on HADOOP-5741:
---------------------------------------

In this case, there is no on-going writes. The problem is that data is not 
flushed to disk when getBlockMetaDataInfo is called. But updateBlock flushes 
and closes the file. Therefore, there is an inconsistency.

> In Datanode, update block may fail due to length inconsistency
> --------------------------------------------------------------
>
>                 Key: HADOOP-5741
>                 URL: https://issues.apache.org/jira/browse/HADOOP-5741
>             Project: Hadoop Core
>          Issue Type: Bug
>          Components: dfs
>            Reporter: Tsz Wo (Nicholas), SZE
>
> When a primary datanode tries to recover a block.  It calls 
> getBlockMetaDataInfo(..) to obtains information like block length from each 
> datanode.  Then, it calls updateBlock(..).
> The block length returned in getBlockMetaDataInfo(..) may be obtained from a 
> unclosed local block file F.   However, in updateBlock(..), it first closes F 
> (if F is open) and then gets the length.  These two lengths may be different. 
>  In such case, updateBlock(..) throws an exception.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to