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

ASF GitHub Bot updated HDFS-16622:
----------------------------------
    Labels: pull-request-available  (was: )

> addRDBI in IncrementalBlockReportManager may remove the block with bigger GS.
> -----------------------------------------------------------------------------
>
>                 Key: HDFS-16622
>                 URL: https://issues.apache.org/jira/browse/HDFS-16622
>             Project: Hadoop HDFS
>          Issue Type: Bug
>            Reporter: ZanderXu
>            Assignee: ZanderXu
>            Priority: Major
>              Labels: pull-request-available
>          Time Spent: 10m
>  Remaining Estimate: 0h
>
> In our production environment,  there is a strange missing block, according 
> to the log, I suspect there is a bug in function 
> addRDBI(ReceivedDeletedBlockInfo rdbi,DatanodeStorage storage)(line 250).
> Bug code in the for loop:
> {code:java}
> synchronized void addRDBI(ReceivedDeletedBlockInfo rdbi,
>       DatanodeStorage storage) {
>     // Make sure another entry for the same block is first removed.
>     // There may only be one such entry.
>     for (PerStorageIBR perStorage : pendingIBRs.values()) {
>       if (perStorage.remove(rdbi.getBlock()) != null) {
>         break;
>       }
>     }
>     getPerStorageIBR(storage).put(rdbi);
>   }
> {code}
> Removed the GS of the Block in ReceivedDeletedBlockInfo may be greater than 
> the GS of the Block in rdbi. And NN will invalidate the Replicate will small 
> GS when complete one block. 
> So If there is only one replicate for one block, there is a possibility of 
> missingblock because of this wrong logic. 



--
This message was sent by Atlassian Jira
(v8.20.7#820007)

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