HDFS-15438. Setting dfs.disk.balancer.max.disk.errors = 0 will fail the block copy. Contributed by AMC-team.

This commit is contained in:
Ayush Saxena 2020-09-18 17:28:11 +05:30
parent 7bba4c609c
commit 2377df38ad
2 changed files with 3 additions and 3 deletions

View File

@ -902,7 +902,7 @@ private long getMaxError(DiskBalancerWorkItem item) {
*/
private ExtendedBlock getBlockToCopy(FsVolumeSpi.BlockIterator iter,
DiskBalancerWorkItem item) {
while (!iter.atEnd() && item.getErrorCount() < getMaxError(item)) {
while (!iter.atEnd() && item.getErrorCount() <= getMaxError(item)) {
try {
ExtendedBlock block = iter.nextBlock();
if(null == block){
@ -923,7 +923,7 @@ private ExtendedBlock getBlockToCopy(FsVolumeSpi.BlockIterator iter,
item.incErrorCount();
}
}
if (item.getErrorCount() >= getMaxError(item)) {
if (item.getErrorCount() > getMaxError(item)) {
item.setErrMsg("Error count exceeded.");
LOG.info("Maximum error count exceeded. Error count: {} Max error:{} ",
item.getErrorCount(), item.getMaxDiskErrors());

View File

@ -757,7 +757,7 @@ public Boolean get() {
}
}, 1000, 100000);
assertTrue("Disk balancer operation hit max errors!", errorCount.get() <
assertTrue("Disk balancer operation hit max errors!", errorCount.get() <=
DFSConfigKeys.DFS_DISK_BALANCER_MAX_DISK_ERRORS_DEFAULT);
createWorkPlanLatch.await();
removeDiskLatch.await();