[
https://issues.apache.org/jira/browse/HDFS-4212?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13565877#comment-13565877
]
Konstantin Shvachko commented on HDFS-4212:
-------------------------------------------
Brandon. The problem mentioned in your original description seems not to be a
problem at all. Because client never knows whether block was created or not
until it gets a reply from NN. If NN crashes before replying the block will be
correctly reported as missing on restart if it was created. This is the nature
of distributed computing.
I'd advocate closing this jira as not a problem.
The problem you describe in your last comment is a [very] different problem
related to race condition in getAdditionalBlock(). Tried to explain it in
details in HDFS-4452 just half an hour before your comment. If you are working
on it please do. Let's just not mix things and be clear what problem is being
solved.
> NameNode can't differentiate between a never-created block and a block which
> is really missing
> ----------------------------------------------------------------------------------------------
>
> Key: HDFS-4212
> URL: https://issues.apache.org/jira/browse/HDFS-4212
> Project: Hadoop HDFS
> Issue Type: Bug
> Components: namenode
> Affects Versions: 1.2.0, 3.0.0
> Reporter: Brandon Li
> Assignee: Brandon Li
> Attachments: hdfs-4212-junit-test.patch
>
>
> In one test case, NameNode allocated a block and then was killed before the
> client got the addBlock response.
> After NameNode restarted, the block which was never created was considered as
> a missing block and FSCK would report the file is corrupted.
> The problem seems to be that, NameNode can't differentiate between a
> never-created block and a block which is really missing.
--
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