HDFS-15422. Reported IBR is partially replaced with stored info when queuing. Contributed by Stephen O'Donnell and Kihwal Lee
This commit is contained in:
parent
924fa87010
commit
9c583f36d5
@ -3211,10 +3211,11 @@ private void reportDiffSortedInner(
|
|||||||
// If the block is an out-of-date generation stamp or state,
|
// 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 we're the standby, we shouldn't treat it as corrupt,
|
||||||
// but instead just queue it for later processing.
|
// but instead just queue it for later processing.
|
||||||
// TODO: Pretty confident this should be s/storedBlock/block below,
|
// Storing the reported block for later processing, as that is what
|
||||||
// since we should be postponing the info of the reported block, not
|
// comes from the IBR / FBR and hence what we should use to compare
|
||||||
// the stored block. See HDFS-6289 for more context.
|
// against the memory state.
|
||||||
queueReportedBlock(storageInfo, storedBlock, reportedState,
|
// See HDFS-6289 and HDFS-15422 for more context.
|
||||||
|
queueReportedBlock(storageInfo, replica, reportedState,
|
||||||
QUEUE_REASON_CORRUPT_STATE);
|
QUEUE_REASON_CORRUPT_STATE);
|
||||||
} else {
|
} else {
|
||||||
toCorrupt.add(c);
|
toCorrupt.add(c);
|
||||||
@ -4276,10 +4277,11 @@ private boolean processAndHandleReportedBlock(
|
|||||||
// If the block is an out-of-date generation stamp or state,
|
// 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 we're the standby, we shouldn't treat it as corrupt,
|
||||||
// but instead just queue it for later processing.
|
// but instead just queue it for later processing.
|
||||||
// TODO: Pretty confident this should be s/storedBlock/block below,
|
// Storing the reported block for later processing, as that is what
|
||||||
// since we should be postponing the info of the reported block, not
|
// comes from the IBR / FBR and hence what we should use to compare
|
||||||
// the stored block. See HDFS-6289 for more context.
|
// against the memory state.
|
||||||
queueReportedBlock(storageInfo, storedBlock, reportedState,
|
// See HDFS-6289 and HDFS-15422 for more context.
|
||||||
|
queueReportedBlock(storageInfo, block, reportedState,
|
||||||
QUEUE_REASON_CORRUPT_STATE);
|
QUEUE_REASON_CORRUPT_STATE);
|
||||||
} else {
|
} else {
|
||||||
markBlockAsCorrupt(c, storageInfo, node);
|
markBlockAsCorrupt(c, storageInfo, node);
|
||||||
|
Loading…
Reference in New Issue
Block a user