You are viewing a plain text version of this content. The canonical link for it is here.
Posted to common-commits@hadoop.apache.org by we...@apache.org on 2019/10/02 20:54:55 UTC
[hadoop] branch branch-3.2 updated: HDFS-14808. EC: Improper size
values for corrupt ec block in LOG. Contributed by Ayush Saxena.
This is an automated email from the ASF dual-hosted git repository.
weichiu pushed a commit to branch branch-3.2
in repository https://gitbox.apache.org/repos/asf/hadoop.git
The following commit(s) were added to refs/heads/branch-3.2 by this push:
new 2bb4ac1 HDFS-14808. EC: Improper size values for corrupt ec block in LOG. Contributed by Ayush Saxena.
2bb4ac1 is described below
commit 2bb4ac18ec0ea8804b424b593615bb06e21a4b6c
Author: Ayush Saxena <ay...@apache.org>
AuthorDate: Wed Sep 25 01:31:15 2019 +0530
HDFS-14808. EC: Improper size values for corrupt ec block in LOG. Contributed by Ayush Saxena.
(cherry picked from commit 66400c1cbb2b4b2f08f7db965c8b7237072bdcc4)
---
.../hadoop/hdfs/server/blockmanagement/BlockManager.java | 13 ++++++++-----
1 file changed, 8 insertions(+), 5 deletions(-)
diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/blockmanagement/BlockManager.java b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/blockmanagement/BlockManager.java
index 648e204..a8699ef 100644
--- a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/blockmanagement/BlockManager.java
+++ b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/blockmanagement/BlockManager.java
@@ -3162,23 +3162,26 @@ public class BlockManager implements BlockStatsMXBean {
+ storedBlock.getGenerationStamp(), Reason.GENSTAMP_MISMATCH);
}
boolean wrongSize;
+ long blockMapSize;
if (storedBlock.isStriped()) {
assert BlockIdManager.isStripedBlockID(reported.getBlockId());
assert storedBlock.getBlockId() ==
BlockIdManager.convertToStripedID(reported.getBlockId());
BlockInfoStriped stripedBlock = (BlockInfoStriped) storedBlock;
int reportedBlkIdx = BlockIdManager.getBlockIndex(reported);
- wrongSize = reported.getNumBytes() != getInternalBlockLength(
- stripedBlock.getNumBytes(), stripedBlock.getCellSize(),
- stripedBlock.getDataBlockNum(), reportedBlkIdx);
+ blockMapSize = getInternalBlockLength(stripedBlock.getNumBytes(),
+ stripedBlock.getCellSize(), stripedBlock.getDataBlockNum(),
+ reportedBlkIdx);
+ wrongSize = reported.getNumBytes() != blockMapSize;
} else {
- wrongSize = storedBlock.getNumBytes() != reported.getNumBytes();
+ blockMapSize = storedBlock.getNumBytes();
+ wrongSize = blockMapSize != reported.getNumBytes();
}
if (wrongSize) {
return new BlockToMarkCorrupt(new Block(reported), storedBlock,
"block is " + ucState + " and reported length " +
reported.getNumBytes() + " does not match " +
- "length in block map " + storedBlock.getNumBytes(),
+ "length in block map " + blockMapSize,
Reason.SIZE_MISMATCH);
} else {
return null; // not corrupt
---------------------------------------------------------------------
To unsubscribe, e-mail: common-commits-unsubscribe@hadoop.apache.org
For additional commands, e-mail: common-commits-help@hadoop.apache.org