HDFS-14029. Sleep in TestLazyPersistFiles should be put into a loop. Contributed by Adam Antal.

(cherry picked from commit 9b899f1ebd)
This commit is contained in:
Arpit Agarwal 2018-10-25 15:14:13 -07:00
parent e3bf7f29af
commit 8b4f9b3e2c
1 changed files with 7 additions and 8 deletions

View File

@ -151,7 +151,7 @@ public class TestLazyPersistFiles extends LazyPersistTestCase {
/**
* If NN restarted then lazyPersist files should not deleted
*/
@Test
@Test(timeout = 20000)
public void testFileShouldNotDiscardedIfNNRestarted()
throws IOException, InterruptedException, TimeoutException {
getClusterBuilder().setRamDiskReplicaCapacity(2).build();
@ -165,13 +165,12 @@ public class TestLazyPersistFiles extends LazyPersistTestCase {
cluster.restartNameNodes();
// wait for the redundancy monitor to mark the file as corrupt.
Thread.sleep(2 * DFS_NAMENODE_REDUNDANCY_INTERVAL_SECONDS_DEFAULT * 1000);
Long corruptBlkCount = (long) Iterators.size(cluster.getNameNode()
.getNamesystem().getBlockManager().getCorruptReplicaBlockIterator());
// Check block detected as corrupted
assertThat(corruptBlkCount, is(1L));
Long corruptBlkCount;
do {
Thread.sleep(DFS_NAMENODE_REDUNDANCY_INTERVAL_SECONDS_DEFAULT * 1000);
corruptBlkCount = (long) Iterators.size(cluster.getNameNode()
.getNamesystem().getBlockManager().getCorruptReplicaBlockIterator());
} while (corruptBlkCount != 1L);
// Ensure path1 exist.
Assert.assertTrue(fs.exists(path1));