From b657822b98781f042fad5281c20123e803ebae0f Mon Sep 17 00:00:00 2001 From: Inigo Goiri Date: Tue, 21 Jan 2020 13:22:53 -0800 Subject: [PATCH] HDFS-15126. TestDatanodeRegistration#testForcedRegistration fails intermittently. Contributed by Ahmed Hussein. --- .../apache/hadoop/hdfs/TestDatanodeRegistration.java | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestDatanodeRegistration.java b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestDatanodeRegistration.java index 37042dbb176..77aeff4d2cb 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestDatanodeRegistration.java +++ b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestDatanodeRegistration.java @@ -364,14 +364,16 @@ public class TestDatanodeRegistration { waitForHeartbeat(dn, dnd); assertTrue(dnd.isRegistered()); assertSame(lastReg, dn.getDNRegistrationForBP(bpId)); - assertTrue(waitForBlockReport(dn, dnd)); + assertTrue("block report is not processed for DN " + dnd, + waitForBlockReport(dn, dnd)); assertTrue(dnd.isRegistered()); assertSame(lastReg, dn.getDNRegistrationForBP(bpId)); // check that block report is not processed and registration didn't // change. dnd.setForceRegistration(true); - assertFalse(waitForBlockReport(dn, dnd)); + assertFalse("block report is processed for DN " + dnd, + waitForBlockReport(dn, dnd)); assertFalse(dnd.isRegistered()); assertSame(lastReg, dn.getDNRegistrationForBP(bpId)); @@ -382,7 +384,8 @@ public class TestDatanodeRegistration { newReg = dn.getDNRegistrationForBP(bpId); assertNotSame(lastReg, newReg); lastReg = newReg; - assertTrue(waitForBlockReport(dn, dnd)); + assertTrue("block report is not processed for DN " + dnd, + waitForBlockReport(dn, dnd)); assertTrue(dnd.isRegistered()); assertSame(lastReg, dn.getDNRegistrationForBP(bpId)); @@ -447,8 +450,9 @@ public class TestDatanodeRegistration { public Boolean get() { return lastCount != storage.getBlockReportCount(); } - }, 10, 2000); + }, 10, 6000); } catch (TimeoutException te) { + LOG.error("Timeout waiting for block report for {}", dnd); return false; } return true;