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

Allen Wittenauer updated HDFS-5761:
-----------------------------------
    Labels: BB2015-05-TBR  (was: )

> DataNode fails to validate integrity for checksum type NULL when DataNode 
> recovers 
> -----------------------------------------------------------------------------------
>
>                 Key: HDFS-5761
>                 URL: https://issues.apache.org/jira/browse/HDFS-5761
>             Project: Hadoop HDFS
>          Issue Type: Bug
>          Components: datanode
>    Affects Versions: 3.0.0
>            Reporter: Kousuke Saruta
>            Assignee: Kousuke Saruta
>              Labels: BB2015-05-TBR
>         Attachments: HDFS-5761.patch
>
>
> When DataNode is down during writing blocks, the blocks are not filinalized 
> and the next time DataNode recovers, integrity validation will run.
> But if we use NULL for checksum algorithm (we can set NULL to 
> dfs.checksum.type), DataNode will fail to validate integrity and cannot be 
> up. 
> The cause is in BlockPoolSlice#validateIntegrity.
> In the method, there is following code.
> {code}
> long numChunks = Math.min(
>           (blockFileLen + bytesPerChecksum - 1)/bytesPerChecksum, 
>           (metaFileLen - crcHeaderLen)/checksumSize);
> {code}
> When we choose NULL checksum, checksumSize is 0 so ArithmeticException will 
> be thrown and DataNode cannot be up.



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

Reply via email to