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

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

I never said that patch 004 introduced incompatible changes.  I just argued 
that it was a bigger change than was necessary to fix the problem.  All other 
things being equal, we would prefer a smaller change to a bigger one.  The only 
argument you have given against my change is that it doesn't fix the problem in 
the case where full block reports are interleaved.  But this is an extremely, 
extremely rare case, to the point where nobody else has even seen this problem 
in their cluster.

I still think that patch 005 is an easier way to fix the problem.  It's 
basically a simple bugfix to my original patch.  However, if you want to do 
something more complex, I will review it.  But I don't want to add any 
additional RPCs.  We already have problems with NameNode performance and we 
should not be adding more RPCs when it's not needed.  We can include the 
storage information in the first RPC of the block report as an optional field.

> BlockReport retransmissions may lead to storages falsely being declared 
> zombie if storage report processing happens out of order
> --------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: HDFS-10301
>                 URL: https://issues.apache.org/jira/browse/HDFS-10301
>             Project: Hadoop HDFS
>          Issue Type: Bug
>          Components: namenode
>    Affects Versions: 2.6.1
>            Reporter: Konstantin Shvachko
>            Assignee: Colin Patrick McCabe
>            Priority: Critical
>         Attachments: HDFS-10301.002.patch, HDFS-10301.003.patch, 
> HDFS-10301.004.patch, HDFS-10301.005.patch, HDFS-10301.01.patch, 
> HDFS-10301.sample.patch, zombieStorageLogs.rtf
>
>
> When NameNode is busy a DataNode can timeout sending a block report. Then it 
> sends the block report again. Then NameNode while process these two reports 
> at the same time can interleave processing storages from different reports. 
> This screws up the blockReportId field, which makes NameNode think that some 
> storages are zombie. Replicas from zombie storages are immediately removed, 
> causing missing blocks.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

---------------------------------------------------------------------
To unsubscribe, e-mail: hdfs-issues-unsubscr...@hadoop.apache.org
For additional commands, e-mail: hdfs-issues-h...@hadoop.apache.org

Reply via email to