[ https://issues.apache.org/jira/browse/HDFS-9646?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15097443#comment-15097443 ]
Kai Zheng commented on HDFS-9646: --------------------------------- Hi [~jingzhao], The patch looks great! I'm reading it and the related codes. So far I have a question: probably the current codes think {{maxTargetLength}} in your sense is right the length of the first block in the group, aka {{firstStripedBlockLength = getBlockLen(blockGroup, 0)}}. If so, I thought the thinking would be correct. Maybe {{getBlockLen}} doesn't return the exact length of the first block as someone may think it should? > ErasureCodingWorker may fail when recovering data blocks with length less > than the first internal block > ------------------------------------------------------------------------------------------------------- > > Key: HDFS-9646 > URL: https://issues.apache.org/jira/browse/HDFS-9646 > Project: Hadoop HDFS > Issue Type: Sub-task > Components: erasure-coding > Affects Versions: 3.0.0 > Reporter: Takuya Fukudome > Assignee: Jing Zhao > Priority: Critical > Attachments: HDFS-9646.000.patch, test-reconstruct-stripe-file.patch > > > This is reported by [~tfukudom]: ErasureCodingWorker may fail with the > following exception when recovering a non-full internal block. > {code} > 2016-01-06 11:14:44,740 WARN datanode.DataNode > (ErasureCodingWorker.java:run(467)) - Failed to recover striped block: > BP-987302662-172.29.4.13-1450757377698:blk_-92233720368 > 54322288_29751 > java.io.IOException: Transfer failed for all targets. > at > org.apache.hadoop.hdfs.server.datanode.erasurecode.ErasureCodingWorker$ReconstructAndTransferBlock.run(ErasureCodingWorker.java:455) > {code} -- This message was sent by Atlassian JIRA (v6.3.4#6332)