|
@@ -21,17 +21,15 @@ import static org.junit.Assert.assertEquals;
|
|
|
import static org.junit.Assert.fail;
|
|
|
|
|
|
import java.io.IOException;
|
|
|
-import java.util.concurrent.TimeoutException;
|
|
|
|
|
|
import org.apache.commons.logging.Log;
|
|
|
import org.apache.commons.logging.LogFactory;
|
|
|
import org.apache.hadoop.conf.Configuration;
|
|
|
import org.apache.hadoop.hdfs.DFSConfigKeys;
|
|
|
+import org.apache.hadoop.hdfs.DFSTestUtil;
|
|
|
import org.apache.hadoop.hdfs.HdfsConfiguration;
|
|
|
import org.apache.hadoop.hdfs.MiniDFSCluster;
|
|
|
import org.apache.hadoop.hdfs.protocol.Block;
|
|
|
-import org.apache.hadoop.hdfs.server.blockmanagement.BlockManagerTestUtil;
|
|
|
-import org.apache.hadoop.hdfs.server.blockmanagement.DatanodeDescriptor;
|
|
|
import org.apache.hadoop.hdfs.server.datanode.DataNode;
|
|
|
import org.apache.hadoop.hdfs.server.datanode.DataNodeTestUtils;
|
|
|
import org.apache.hadoop.hdfs.server.protocol.DatanodeCommand;
|
|
@@ -43,7 +41,6 @@ import org.apache.hadoop.hdfs.server.protocol.RegisterCommand;
|
|
|
import org.apache.hadoop.hdfs.server.protocol.StorageBlockReport;
|
|
|
import org.apache.hadoop.hdfs.server.protocol.StorageReceivedDeletedBlocks;
|
|
|
import org.apache.hadoop.hdfs.server.protocol.StorageReport;
|
|
|
-import org.apache.hadoop.util.Time;
|
|
|
import org.junit.After;
|
|
|
import org.junit.Test;
|
|
|
|
|
@@ -60,29 +57,6 @@ public class TestDeadDatanode {
|
|
|
cluster.shutdown();
|
|
|
}
|
|
|
|
|
|
- /**
|
|
|
- * wait for datanode to reach alive or dead state for waitTime given in
|
|
|
- * milliseconds.
|
|
|
- */
|
|
|
- private void waitForDatanodeState(String nodeID, boolean alive, int waitTime)
|
|
|
- throws TimeoutException, InterruptedException {
|
|
|
- long stopTime = Time.now() + waitTime;
|
|
|
- FSNamesystem namesystem = cluster.getNamesystem();
|
|
|
- String state = alive ? "alive" : "dead";
|
|
|
- while (Time.now() < stopTime) {
|
|
|
- final DatanodeDescriptor dd = BlockManagerTestUtil.getDatanode(
|
|
|
- namesystem, nodeID);
|
|
|
- if (dd.isAlive == alive) {
|
|
|
- LOG.info("datanode " + nodeID + " is " + state);
|
|
|
- return;
|
|
|
- }
|
|
|
- LOG.info("Waiting for datanode " + nodeID + " to become " + state);
|
|
|
- Thread.sleep(1000);
|
|
|
- }
|
|
|
- throw new TimeoutException("Timedout waiting for datanode reach state "
|
|
|
- + state);
|
|
|
- }
|
|
|
-
|
|
|
/**
|
|
|
* Test to ensure namenode rejects request from dead datanode
|
|
|
* - Start a cluster
|
|
@@ -104,11 +78,11 @@ public class TestDeadDatanode {
|
|
|
DatanodeRegistration reg =
|
|
|
DataNodeTestUtils.getDNRegistrationForBP(cluster.getDataNodes().get(0), poolId);
|
|
|
|
|
|
- waitForDatanodeState(reg.getDatanodeUuid(), true, 20000);
|
|
|
+ DFSTestUtil.waitForDatanodeState(cluster, reg.getDatanodeUuid(), true, 20000);
|
|
|
|
|
|
// Shutdown and wait for datanode to be marked dead
|
|
|
dn.shutdown();
|
|
|
- waitForDatanodeState(reg.getDatanodeUuid(), false, 20000);
|
|
|
+ DFSTestUtil.waitForDatanodeState(cluster, reg.getDatanodeUuid(), false, 20000);
|
|
|
|
|
|
DatanodeProtocol dnp = cluster.getNameNodeRpc();
|
|
|
|