|
@@ -70,7 +70,7 @@ public class TestRBWBlockInvalidation {
|
|
throws IOException, InterruptedException {
|
|
throws IOException, InterruptedException {
|
|
Configuration conf = new HdfsConfiguration();
|
|
Configuration conf = new HdfsConfiguration();
|
|
conf.setInt(DFSConfigKeys.DFS_REPLICATION_KEY, 2);
|
|
conf.setInt(DFSConfigKeys.DFS_REPLICATION_KEY, 2);
|
|
- conf.setLong(DFSConfigKeys.DFS_BLOCKREPORT_INTERVAL_MSEC_KEY, 300);
|
|
|
|
|
|
+ conf.setLong(DFSConfigKeys.DFS_BLOCKREPORT_INTERVAL_MSEC_KEY, 100);
|
|
conf.setLong(DFSConfigKeys.DFS_DATANODE_DIRECTORYSCAN_INTERVAL_KEY, 1);
|
|
conf.setLong(DFSConfigKeys.DFS_DATANODE_DIRECTORYSCAN_INTERVAL_KEY, 1);
|
|
conf.setLong(DFSConfigKeys.DFS_HEARTBEAT_INTERVAL_KEY, 1);
|
|
conf.setLong(DFSConfigKeys.DFS_HEARTBEAT_INTERVAL_KEY, 1);
|
|
MiniDFSCluster cluster = new MiniDFSCluster.Builder(conf).numDataNodes(2)
|
|
MiniDFSCluster cluster = new MiniDFSCluster.Builder(conf).numDataNodes(2)
|
|
@@ -101,27 +101,27 @@ public class TestRBWBlockInvalidation {
|
|
out.close();
|
|
out.close();
|
|
|
|
|
|
// Check datanode has reported the corrupt block.
|
|
// Check datanode has reported the corrupt block.
|
|
- boolean isCorruptReported = false;
|
|
|
|
- while (!isCorruptReported) {
|
|
|
|
- if (countReplicas(namesystem, blk).corruptReplicas() > 0) {
|
|
|
|
- isCorruptReported = true;
|
|
|
|
|
|
+ int corruptReplicas = 0;
|
|
|
|
+ while (true) {
|
|
|
|
+ if ((corruptReplicas = countReplicas(namesystem, blk).corruptReplicas()) > 0) {
|
|
|
|
+ break;
|
|
}
|
|
}
|
|
Thread.sleep(100);
|
|
Thread.sleep(100);
|
|
}
|
|
}
|
|
assertEquals("There should be 1 replica in the corruptReplicasMap", 1,
|
|
assertEquals("There should be 1 replica in the corruptReplicasMap", 1,
|
|
- countReplicas(namesystem, blk).corruptReplicas());
|
|
|
|
|
|
+ corruptReplicas);
|
|
|
|
|
|
// Check the block has got replicated to another datanode.
|
|
// Check the block has got replicated to another datanode.
|
|
blk = DFSTestUtil.getFirstBlock(fs, testPath);
|
|
blk = DFSTestUtil.getFirstBlock(fs, testPath);
|
|
- boolean isReplicated = false;
|
|
|
|
- while (!isReplicated) {
|
|
|
|
- if (countReplicas(namesystem, blk).liveReplicas() > 1) {
|
|
|
|
- isReplicated = true;
|
|
|
|
|
|
+ int liveReplicas = 0;
|
|
|
|
+ while (true) {
|
|
|
|
+ if ((liveReplicas = countReplicas(namesystem, blk).liveReplicas()) > 1) {
|
|
|
|
+ break;
|
|
}
|
|
}
|
|
Thread.sleep(100);
|
|
Thread.sleep(100);
|
|
}
|
|
}
|
|
- assertEquals("There should be two live replicas", 2, countReplicas(
|
|
|
|
- namesystem, blk).liveReplicas());
|
|
|
|
|
|
+ assertEquals("There should be two live replicas", 2,
|
|
|
|
+ liveReplicas);
|
|
|
|
|
|
// sleep for 1 second, so that by this time datanode reports the corrupt
|
|
// sleep for 1 second, so that by this time datanode reports the corrupt
|
|
// block after a live replica of block got replicated.
|
|
// block after a live replica of block got replicated.
|