HDFS-16935. Fix TestFsDatasetImpl#testReportBadBlocks (#5432)
Contributed by Viraj Jasani
This commit is contained in:
parent
8f6be3678d
commit
2ab7eb4caa
@ -1075,16 +1075,14 @@ public void testCleanShutdownOfVolume() throws Exception {
|
|||||||
@Test(timeout = 30000)
|
@Test(timeout = 30000)
|
||||||
public void testReportBadBlocks() throws Exception {
|
public void testReportBadBlocks() throws Exception {
|
||||||
boolean threwException = false;
|
boolean threwException = false;
|
||||||
MiniDFSCluster cluster = null;
|
final Configuration config = new HdfsConfiguration();
|
||||||
try {
|
try (MiniDFSCluster cluster = new MiniDFSCluster.Builder(config)
|
||||||
Configuration config = new HdfsConfiguration();
|
.numDataNodes(1).build()) {
|
||||||
cluster = new MiniDFSCluster.Builder(config).numDataNodes(1).build();
|
|
||||||
cluster.waitActive();
|
cluster.waitActive();
|
||||||
|
|
||||||
Assert.assertEquals(0, cluster.getNamesystem().getCorruptReplicaBlocks());
|
Assert.assertEquals(0, cluster.getNamesystem().getCorruptReplicaBlocks());
|
||||||
DataNode dataNode = cluster.getDataNodes().get(0);
|
DataNode dataNode = cluster.getDataNodes().get(0);
|
||||||
ExtendedBlock block =
|
ExtendedBlock block = new ExtendedBlock(cluster.getNamesystem().getBlockPoolId(), 0);
|
||||||
new ExtendedBlock(cluster.getNamesystem().getBlockPoolId(), 0);
|
|
||||||
try {
|
try {
|
||||||
// Test the reportBadBlocks when the volume is null
|
// Test the reportBadBlocks when the volume is null
|
||||||
dataNode.reportBadBlocks(block);
|
dataNode.reportBadBlocks(block);
|
||||||
@ -1101,15 +1099,11 @@ public void testReportBadBlocks() throws Exception {
|
|||||||
|
|
||||||
block = DFSTestUtil.getFirstBlock(fs, filePath);
|
block = DFSTestUtil.getFirstBlock(fs, filePath);
|
||||||
// Test for the overloaded method reportBadBlocks
|
// Test for the overloaded method reportBadBlocks
|
||||||
dataNode.reportBadBlocks(block, dataNode.getFSDataset()
|
dataNode.reportBadBlocks(block, dataNode.getFSDataset().getFsVolumeReferences().get(0));
|
||||||
.getFsVolumeReferences().get(0));
|
DataNodeTestUtils.triggerHeartbeat(dataNode);
|
||||||
Thread.sleep(3000);
|
BlockManagerTestUtil.updateState(cluster.getNamesystem().getBlockManager());
|
||||||
BlockManagerTestUtil.updateState(cluster.getNamesystem()
|
assertEquals("Corrupt replica blocks could not be reflected with the heartbeat", 1,
|
||||||
.getBlockManager());
|
cluster.getNamesystem().getCorruptReplicaBlocks());
|
||||||
// Verify the bad block has been reported to namenode
|
|
||||||
Assert.assertEquals(1, cluster.getNamesystem().getCorruptReplicaBlocks());
|
|
||||||
} finally {
|
|
||||||
cluster.shutdown();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user