HDFS-10710. In BlockManager#rescanPostponedMisreplicatedBlocks(), postponed misreplicated block counts should be retrieved within the NN lock protection.Contributed by GAO Rui.
(cherry picked from commit f4ba5ff1d7
)
This commit is contained in:
parent
1ea03411c2
commit
180a26d9fb
|
@ -2073,9 +2073,9 @@ public class BlockManager implements BlockStatsMXBean {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
long startTimeRescanPostponedMisReplicatedBlocks = Time.monotonicNow();
|
long startTimeRescanPostponedMisReplicatedBlocks = Time.monotonicNow();
|
||||||
|
namesystem.writeLock();
|
||||||
long startPostponedMisReplicatedBlocksCount =
|
long startPostponedMisReplicatedBlocksCount =
|
||||||
getPostponedMisreplicatedBlocksCount();
|
getPostponedMisreplicatedBlocksCount();
|
||||||
namesystem.writeLock();
|
|
||||||
try {
|
try {
|
||||||
// blocksPerRescan is the configured number of blocks per rescan.
|
// blocksPerRescan is the configured number of blocks per rescan.
|
||||||
// Randomly select blocksPerRescan consecutive blocks from the HashSet
|
// Randomly select blocksPerRescan consecutive blocks from the HashSet
|
||||||
|
@ -2128,9 +2128,9 @@ public class BlockManager implements BlockStatsMXBean {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} finally {
|
} finally {
|
||||||
namesystem.writeUnlock();
|
|
||||||
long endPostponedMisReplicatedBlocksCount =
|
long endPostponedMisReplicatedBlocksCount =
|
||||||
getPostponedMisreplicatedBlocksCount();
|
getPostponedMisreplicatedBlocksCount();
|
||||||
|
namesystem.writeUnlock();
|
||||||
LOG.info("Rescan of postponedMisreplicatedBlocks completed in " +
|
LOG.info("Rescan of postponedMisreplicatedBlocks completed in " +
|
||||||
(Time.monotonicNow() - startTimeRescanPostponedMisReplicatedBlocks) +
|
(Time.monotonicNow() - startTimeRescanPostponedMisReplicatedBlocks) +
|
||||||
" msecs. " + endPostponedMisReplicatedBlocksCount +
|
" msecs. " + endPostponedMisReplicatedBlocksCount +
|
||||||
|
|
Loading…
Reference in New Issue