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

(cherry picked from commit 2377df38ad)
This commit is contained in:
Ayush Saxena 2020-09-18 17:28:11 +05:30 committed by S O'Donnell
parent 8354ce680b
commit 30a1b17b22
2 changed files with 3 additions and 3 deletions

View File

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

View File

@ -758,7 +758,7 @@ public class TestDiskBalancer {
} }
}, 1000, 100000); }, 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); DFSConfigKeys.DFS_DISK_BALANCER_MAX_DISK_ERRORS_DEFAULT);
createWorkPlanLatch.await(); createWorkPlanLatch.await();
removeDiskLatch.await(); removeDiskLatch.await();