|
@@ -3120,10 +3120,11 @@ public class BlockManager implements BlockStatsMXBean {
|
|
|
// If the block is an out-of-date generation stamp or state,
|
|
|
// but we're the standby, we shouldn't treat it as corrupt,
|
|
|
// but instead just queue it for later processing.
|
|
|
- // TODO: Pretty confident this should be s/storedBlock/block below,
|
|
|
- // since we should be postponing the info of the reported block, not
|
|
|
- // the stored block. See HDFS-6289 for more context.
|
|
|
- queueReportedBlock(storageInfo, storedBlock, reportedState,
|
|
|
+ // Storing the reported block for later processing, as that is what
|
|
|
+ // comes from the IBR / FBR and hence what we should use to compare
|
|
|
+ // against the memory state.
|
|
|
+ // See HDFS-6289 and HDFS-15422 for more context.
|
|
|
+ queueReportedBlock(storageInfo, replica, reportedState,
|
|
|
QUEUE_REASON_CORRUPT_STATE);
|
|
|
} else {
|
|
|
toCorrupt.add(c);
|
|
@@ -4146,10 +4147,11 @@ public class BlockManager implements BlockStatsMXBean {
|
|
|
// If the block is an out-of-date generation stamp or state,
|
|
|
// but we're the standby, we shouldn't treat it as corrupt,
|
|
|
// but instead just queue it for later processing.
|
|
|
- // TODO: Pretty confident this should be s/storedBlock/block below,
|
|
|
- // since we should be postponing the info of the reported block, not
|
|
|
- // the stored block. See HDFS-6289 for more context.
|
|
|
- queueReportedBlock(storageInfo, storedBlock, reportedState,
|
|
|
+ // Storing the reported block for later processing, as that is what
|
|
|
+ // comes from the IBR / FBR and hence what we should use to compare
|
|
|
+ // against the memory state.
|
|
|
+ // See HDFS-6289 and HDFS-15422 for more context.
|
|
|
+ queueReportedBlock(storageInfo, block, reportedState,
|
|
|
QUEUE_REASON_CORRUPT_STATE);
|
|
|
} else {
|
|
|
markBlockAsCorrupt(c, storageInfo, node);
|