Skip to content

Commit f38a250

Browse files
committed
HDFS-17003. Erasure coding: invalidate wrong block after reporting bad blocks from datanode
1 parent fe61d8f commit f38a250

1 file changed

Lines changed: 10 additions & 0 deletions

File tree

  • hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/blockmanagement

hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/blockmanagement/BlockManager.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3753,6 +3753,16 @@ private void invalidateCorruptReplicas(BlockInfo blk, Block reported,
37533753
nodes.toArray(new DatanodeDescriptor[nodes.size()]);
37543754
for (DatanodeDescriptor node : nodesCopy) {
37553755
try {
3756+
if (blk.isStriped()) {
3757+
DatanodeStorageInfo[] storages = getStorages(blk);
3758+
// remove this block from the list of pending blocks to be deleted.
3759+
for (DatanodeStorageInfo storage : storages) {
3760+
final Block b = getBlockOnStorage(blk, storage);
3761+
if (b != null) {
3762+
reported = b;
3763+
}
3764+
}
3765+
}
37563766
if (!invalidateBlock(new BlockToMarkCorrupt(reported, blk, null,
37573767
Reason.ANY), node, numberReplicas)) {
37583768
removedFromBlocksMap = false;

0 commit comments

Comments
 (0)