Return-Path: X-Original-To: apmail-hadoop-common-commits-archive@www.apache.org Delivered-To: apmail-hadoop-common-commits-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id B4FC817731 for ; Wed, 25 Mar 2015 14:54:31 +0000 (UTC) Received: (qmail 79414 invoked by uid 500); 25 Mar 2015 14:54:31 -0000 Delivered-To: apmail-hadoop-common-commits-archive@hadoop.apache.org Received: (qmail 79335 invoked by uid 500); 25 Mar 2015 14:54:31 -0000 Mailing-List: contact common-commits-help@hadoop.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: common-dev@hadoop.apache.org Delivered-To: mailing list common-commits@hadoop.apache.org Received: (qmail 79325 invoked by uid 99); 25 Mar 2015 14:54:31 -0000 Received: from git1-us-west.apache.org (HELO git1-us-west.apache.org) (140.211.11.23) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 25 Mar 2015 14:54:31 +0000 Received: by git1-us-west.apache.org (ASF Mail Server at git1-us-west.apache.org, from userid 33) id 38597E1865; Wed, 25 Mar 2015 14:54:31 +0000 (UTC) Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: kasha@apache.org To: common-commits@hadoop.apache.org Date: Wed, 25 Mar 2015 14:54:31 -0000 Message-Id: X-Mailer: ASF-Git Admin Mailer Subject: [01/51] [abbrv] hadoop git commit: HDFS-6841. Use Time.monotonicNow() wherever applicable instead of Time.now(). Contributed by Vinayakumar B Repository: hadoop Updated Branches: refs/heads/YARN-2139 ddffcd8fa -> c906a1de7 http://git-wip-us.apache.org/repos/asf/hadoop/blob/75ead273/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/balancer/TestBalancer.java ---------------------------------------------------------------------- diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/balancer/TestBalancer.java b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/balancer/TestBalancer.java index 9b62467..8b2d11e 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/balancer/TestBalancer.java +++ b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/balancer/TestBalancer.java @@ -262,7 +262,7 @@ public class TestBalancer { throws IOException, TimeoutException { long timeout = TIMEOUT; long failtime = (timeout <= 0L) ? Long.MAX_VALUE - : Time.now() + timeout; + : Time.monotonicNow() + timeout; while (true) { long[] status = client.getStats(); @@ -274,7 +274,7 @@ public class TestBalancer { && usedSpaceVariance < CAPACITY_ALLOWED_VARIANCE) break; //done - if (Time.now() > failtime) { + if (Time.monotonicNow() > failtime) { throw new TimeoutException("Cluster failed to reached expected values of " + "totalSpace (current: " + status[0] + ", expected: " + expectedTotalSpace @@ -369,7 +369,7 @@ public class TestBalancer { int expectedExcludedNodes) throws IOException, TimeoutException { long timeout = TIMEOUT; long failtime = (timeout <= 0L) ? Long.MAX_VALUE - : Time.now() + timeout; + : Time.monotonicNow() + timeout; if (!p.nodesToBeIncluded.isEmpty()) { totalCapacity = p.nodesToBeIncluded.size() * CAPACITY; } @@ -399,7 +399,7 @@ public class TestBalancer { } if (Math.abs(avgUtilization - nodeUtilization) > BALANCE_ALLOWED_VARIANCE) { balanced = false; - if (Time.now() > failtime) { + if (Time.monotonicNow() > failtime) { throw new TimeoutException( "Rebalancing expected avg utilization to become " + avgUtilization + ", but on datanode " + datanode http://git-wip-us.apache.org/repos/asf/hadoop/blob/75ead273/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/blockmanagement/BlockManagerTestUtil.java ---------------------------------------------------------------------- diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/blockmanagement/BlockManagerTestUtil.java b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/blockmanagement/BlockManagerTestUtil.java index f61176e..23e610f 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/blockmanagement/BlockManagerTestUtil.java +++ b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/blockmanagement/BlockManagerTestUtil.java @@ -186,7 +186,7 @@ public class BlockManagerTestUtil { Assert.assertNotNull("Could not find DN with name: " + dnName, theDND); synchronized (hbm) { - theDND.setLastUpdate(0); + DFSTestUtil.setDatanodeDead(theDND); hbm.heartbeatCheck(); } } finally { http://git-wip-us.apache.org/repos/asf/hadoop/blob/75ead273/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/blockmanagement/TestBlockInfoUnderConstruction.java ---------------------------------------------------------------------- diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/blockmanagement/TestBlockInfoUnderConstruction.java b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/blockmanagement/TestBlockInfoUnderConstruction.java index 453f411..a7ba293 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/blockmanagement/TestBlockInfoUnderConstruction.java +++ b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/blockmanagement/TestBlockInfoUnderConstruction.java @@ -23,6 +23,7 @@ import org.apache.hadoop.hdfs.DFSTestUtil; import org.apache.hadoop.hdfs.protocol.Block; import org.apache.hadoop.hdfs.server.common.GenerationStamp; import org.apache.hadoop.hdfs.server.common.HdfsServerConstants.BlockUCState; +import org.apache.hadoop.util.Time; import org.junit.Test; /** @@ -46,40 +47,34 @@ public class TestBlockInfoUnderConstruction { new DatanodeStorageInfo[] {s1, s2, s3}); // Recovery attempt #1. - long currentTime = System.currentTimeMillis(); - dd1.setLastUpdate(currentTime - 3 * 1000); - dd2.setLastUpdate(currentTime - 1 * 1000); - dd3.setLastUpdate(currentTime - 2 * 1000); + DFSTestUtil.resetLastUpdatesWithOffset(dd1, -3 * 1000); + DFSTestUtil.resetLastUpdatesWithOffset(dd2, -1 * 1000); + DFSTestUtil.resetLastUpdatesWithOffset(dd3, -2 * 1000); blockInfo.initializeBlockRecovery(1); BlockInfoContiguousUnderConstruction[] blockInfoRecovery = dd2.getLeaseRecoveryCommand(1); assertEquals(blockInfoRecovery[0], blockInfo); // Recovery attempt #2. - currentTime = System.currentTimeMillis(); - dd1.setLastUpdate(currentTime - 2 * 1000); - dd2.setLastUpdate(currentTime - 1 * 1000); - dd3.setLastUpdate(currentTime - 3 * 1000); + DFSTestUtil.resetLastUpdatesWithOffset(dd1, -2 * 1000); + DFSTestUtil.resetLastUpdatesWithOffset(dd2, -1 * 1000); + DFSTestUtil.resetLastUpdatesWithOffset(dd3, -3 * 1000); blockInfo.initializeBlockRecovery(2); blockInfoRecovery = dd1.getLeaseRecoveryCommand(1); assertEquals(blockInfoRecovery[0], blockInfo); // Recovery attempt #3. - currentTime = System.currentTimeMillis(); - dd1.setLastUpdate(currentTime - 2 * 1000); - dd2.setLastUpdate(currentTime - 1 * 1000); - dd3.setLastUpdate(currentTime - 3 * 1000); - currentTime = System.currentTimeMillis(); + DFSTestUtil.resetLastUpdatesWithOffset(dd1, -2 * 1000); + DFSTestUtil.resetLastUpdatesWithOffset(dd2, -1 * 1000); + DFSTestUtil.resetLastUpdatesWithOffset(dd3, -3 * 1000); blockInfo.initializeBlockRecovery(3); blockInfoRecovery = dd3.getLeaseRecoveryCommand(1); assertEquals(blockInfoRecovery[0], blockInfo); // Recovery attempt #4. // Reset everything. And again pick DN with most recent heart beat. - currentTime = System.currentTimeMillis(); - dd1.setLastUpdate(currentTime - 2 * 1000); - dd2.setLastUpdate(currentTime - 1 * 1000); - dd3.setLastUpdate(currentTime); - currentTime = System.currentTimeMillis(); + DFSTestUtil.resetLastUpdatesWithOffset(dd1, -2 * 1000); + DFSTestUtil.resetLastUpdatesWithOffset(dd2, -1 * 1000); + DFSTestUtil.resetLastUpdatesWithOffset(dd3, 0); blockInfo.initializeBlockRecovery(3); blockInfoRecovery = dd3.getLeaseRecoveryCommand(1); assertEquals(blockInfoRecovery[0], blockInfo); http://git-wip-us.apache.org/repos/asf/hadoop/blob/75ead273/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/blockmanagement/TestHeartbeatHandling.java ---------------------------------------------------------------------- diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/blockmanagement/TestHeartbeatHandling.java b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/blockmanagement/TestHeartbeatHandling.java index efd1feb..6fc30ba 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/blockmanagement/TestHeartbeatHandling.java +++ b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/blockmanagement/TestHeartbeatHandling.java @@ -23,6 +23,7 @@ import java.util.ArrayList; 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; @@ -38,6 +39,7 @@ import org.apache.hadoop.hdfs.server.protocol.DatanodeCommand; import org.apache.hadoop.hdfs.server.protocol.DatanodeProtocol; import org.apache.hadoop.hdfs.server.protocol.DatanodeRegistration; import org.apache.hadoop.hdfs.server.protocol.DatanodeStorage; +import org.apache.hadoop.util.Time; import org.junit.Test; /** @@ -164,9 +166,9 @@ public class TestHeartbeatHandling { NameNodeAdapter.sendHeartBeat(nodeReg3, dd3, namesystem); // Test with all alive nodes. - dd1.setLastUpdate(System.currentTimeMillis()); - dd2.setLastUpdate(System.currentTimeMillis()); - dd3.setLastUpdate(System.currentTimeMillis()); + DFSTestUtil.resetLastUpdatesWithOffset(dd1, 0); + DFSTestUtil.resetLastUpdatesWithOffset(dd2, 0); + DFSTestUtil.resetLastUpdatesWithOffset(dd3, 0); final DatanodeStorageInfo[] storages = { dd1.getStorageInfos()[0], dd2.getStorageInfos()[0], @@ -189,10 +191,10 @@ public class TestHeartbeatHandling { assertEquals(recoveringNodes[2], dd3); // Test with one stale node. - dd1.setLastUpdate(System.currentTimeMillis()); + DFSTestUtil.resetLastUpdatesWithOffset(dd1, 0); // More than the default stale interval of 30 seconds. - dd2.setLastUpdate(System.currentTimeMillis() - 40 * 1000); - dd3.setLastUpdate(System.currentTimeMillis()); + DFSTestUtil.resetLastUpdatesWithOffset(dd2, -40 * 1000); + DFSTestUtil.resetLastUpdatesWithOffset(dd3, 0); blockInfo = new BlockInfoContiguousUnderConstruction( new Block(0, 0, GenerationStamp.LAST_RESERVED_STAMP), (short) 3, BlockUCState.UNDER_RECOVERY, storages); @@ -210,10 +212,10 @@ public class TestHeartbeatHandling { assertEquals(recoveringNodes[1], dd3); // Test with all stale node. - dd1.setLastUpdate(System.currentTimeMillis() - 60 * 1000); + DFSTestUtil.resetLastUpdatesWithOffset(dd1, - 60 * 1000); // More than the default stale interval of 30 seconds. - dd2.setLastUpdate(System.currentTimeMillis() - 40 * 1000); - dd3.setLastUpdate(System.currentTimeMillis() - 80 * 1000); + DFSTestUtil.resetLastUpdatesWithOffset(dd2, - 40 * 1000); + DFSTestUtil.resetLastUpdatesWithOffset(dd3, - 80 * 1000); blockInfo = new BlockInfoContiguousUnderConstruction( new Block(0, 0, GenerationStamp.LAST_RESERVED_STAMP), (short) 3, BlockUCState.UNDER_RECOVERY, storages); http://git-wip-us.apache.org/repos/asf/hadoop/blob/75ead273/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/blockmanagement/TestHostFileManager.java ---------------------------------------------------------------------- diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/blockmanagement/TestHostFileManager.java b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/blockmanagement/TestHostFileManager.java index 5435572..733446c 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/blockmanagement/TestHostFileManager.java +++ b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/blockmanagement/TestHostFileManager.java @@ -18,6 +18,7 @@ package org.apache.hadoop.hdfs.server.blockmanagement; import org.apache.hadoop.conf.Configuration; +import org.apache.hadoop.hdfs.DFSTestUtil; import org.apache.hadoop.hdfs.protocol.DatanodeID; import org.apache.hadoop.hdfs.protocol.HdfsConstants; import org.apache.hadoop.hdfs.server.namenode.FSNamesystem; @@ -142,7 +143,7 @@ public class TestHostFileManager { .DatanodeReportType.DEAD).size()); DatanodeDescriptor spam = new DatanodeDescriptor(new DatanodeID("127.0.0" + ".3", "127.0.0.3", "uuid-spam", 12345, 1020, 1021, 1022)); - spam.setLastUpdate(0); + DFSTestUtil.setDatanodeDead(spam); includedNodes.add(entry("127.0.0.3:12345")); dnMap.put("uuid-spam", spam); Assert.assertEquals(1, dm.getDatanodeListForReport(HdfsConstants http://git-wip-us.apache.org/repos/asf/hadoop/blob/75ead273/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/blockmanagement/TestNodeCount.java ---------------------------------------------------------------------- diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/blockmanagement/TestNodeCount.java b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/blockmanagement/TestNodeCount.java index f797381..c3726f2 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/blockmanagement/TestNodeCount.java +++ b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/blockmanagement/TestNodeCount.java @@ -137,7 +137,7 @@ public class TestNodeCount { void initializeTimeout(long timeout) { this.timeout = timeout; - this.failtime = Time.now() + this.failtime = Time.monotonicNow() + ((timeout <= 0) ? Long.MAX_VALUE : timeout); } @@ -148,7 +148,7 @@ public class TestNodeCount { /* check for timeout, then wait for cycleTime msec */ void checkTimeout(String testLabel, long cycleTime) throws TimeoutException { - if (Time.now() > failtime) { + if (Time.monotonicNow() > failtime) { throw new TimeoutException("Timeout: " + testLabel + " for block " + lastBlock + " after " + timeout + " msec. Last counts: live = " + lastNum.liveReplicas() http://git-wip-us.apache.org/repos/asf/hadoop/blob/75ead273/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/blockmanagement/TestOverReplicatedBlocks.java ---------------------------------------------------------------------- diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/blockmanagement/TestOverReplicatedBlocks.java b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/blockmanagement/TestOverReplicatedBlocks.java index 6bbb0c3..a86b573 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/blockmanagement/TestOverReplicatedBlocks.java +++ b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/blockmanagement/TestOverReplicatedBlocks.java @@ -17,7 +17,7 @@ */ package org.apache.hadoop.hdfs.server.blockmanagement; -import static org.apache.hadoop.util.Time.now; +import static org.apache.hadoop.util.Time.monotonicNow; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; @@ -42,6 +42,7 @@ import org.apache.hadoop.hdfs.server.datanode.DataNodeTestUtils; import org.apache.hadoop.hdfs.server.namenode.FSNamesystem; import org.apache.hadoop.hdfs.server.namenode.NameNodeAdapter; import org.apache.hadoop.hdfs.server.protocol.DatanodeRegistration; +import org.apache.hadoop.util.Time; import org.junit.Test; public class TestOverReplicatedBlocks { @@ -171,10 +172,10 @@ public class TestOverReplicatedBlocks { long waitTime = DFSConfigKeys.DFS_HEARTBEAT_INTERVAL_DEFAULT * 1000 * (DFSConfigKeys.DFS_NAMENODE_TOLERATE_HEARTBEAT_MULTIPLIER_DEFAULT + 1); do { - nodeInfo = - namesystem.getBlockManager().getDatanodeManager().getDatanode(dnReg); - lastHeartbeat = nodeInfo.getLastUpdate(); - } while(now() - lastHeartbeat < waitTime); + nodeInfo = namesystem.getBlockManager().getDatanodeManager() + .getDatanode(dnReg); + lastHeartbeat = nodeInfo.getLastUpdateMonotonic(); + } while (monotonicNow() - lastHeartbeat < waitTime); fs.setReplication(fileName, (short)3); BlockLocation locs[] = fs.getFileBlockLocations( http://git-wip-us.apache.org/repos/asf/hadoop/blob/75ead273/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/blockmanagement/TestReplicationPolicy.java ---------------------------------------------------------------------- diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/blockmanagement/TestReplicationPolicy.java b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/blockmanagement/TestReplicationPolicy.java index 24fd81d..485cb9b 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/blockmanagement/TestReplicationPolicy.java +++ b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/blockmanagement/TestReplicationPolicy.java @@ -50,6 +50,7 @@ import org.apache.hadoop.hdfs.LogVerificationAppender; import org.apache.hadoop.hdfs.MiniDFSCluster; import org.apache.hadoop.hdfs.TestBlockStoragePolicy; import org.apache.hadoop.hdfs.protocol.Block; +import org.apache.hadoop.hdfs.protocol.DatanodeInfo; import org.apache.hadoop.hdfs.protocol.HdfsConstants; import org.apache.hadoop.hdfs.server.blockmanagement.BlockManager.StatefulBlockInfo; import org.apache.hadoop.hdfs.server.common.HdfsServerConstants.BlockUCState; @@ -564,7 +565,7 @@ public class TestReplicationPolicy { @Test public void testChooseTargetWithStaleNodes() throws Exception { // Set dataNodes[0] as stale - dataNodes[0].setLastUpdate(Time.now() - staleInterval - 1); + DFSTestUtil.resetLastUpdatesWithOffset(dataNodes[0], -(staleInterval + 1)); namenode.getNamesystem().getBlockManager() .getDatanodeManager().getHeartbeatManager().heartbeatCheck(); assertTrue(namenode.getNamesystem().getBlockManager() @@ -584,7 +585,7 @@ public class TestReplicationPolicy { assertFalse(isOnSameRack(targets[0], dataNodes[0])); // reset - dataNodes[0].setLastUpdate(Time.now()); + DFSTestUtil.resetLastUpdatesWithOffset(dataNodes[0], 0); namenode.getNamesystem().getBlockManager() .getDatanodeManager().getHeartbeatManager().heartbeatCheck(); } @@ -601,7 +602,8 @@ public class TestReplicationPolicy { public void testChooseTargetWithHalfStaleNodes() throws Exception { // Set dataNodes[0], dataNodes[1], and dataNodes[2] as stale for (int i = 0; i < 3; i++) { - dataNodes[i].setLastUpdate(Time.now() - staleInterval - 1); + DFSTestUtil + .resetLastUpdatesWithOffset(dataNodes[i], -(staleInterval + 1)); } namenode.getNamesystem().getBlockManager() .getDatanodeManager().getHeartbeatManager().heartbeatCheck(); @@ -633,7 +635,7 @@ public class TestReplicationPolicy { assertTrue(containsWithinRange(dataNodes[5], targets, 0, 3)); for (int i = 0; i < dataNodes.length; i++) { - dataNodes[i].setLastUpdate(Time.now()); + DFSTestUtil.resetLastUpdatesWithOffset(dataNodes[i], 0); } namenode.getNamesystem().getBlockManager() .getDatanodeManager().getHeartbeatManager().heartbeatCheck(); @@ -659,9 +661,10 @@ public class TestReplicationPolicy { for (int i = 0; i < 2; i++) { DataNode dn = miniCluster.getDataNodes().get(i); DataNodeTestUtils.setHeartbeatsDisabledForTests(dn, true); - miniCluster.getNameNode().getNamesystem().getBlockManager() - .getDatanodeManager().getDatanode(dn.getDatanodeId()) - .setLastUpdate(Time.now() - staleInterval - 1); + DatanodeDescriptor dnDes = miniCluster.getNameNode().getNamesystem() + .getBlockManager().getDatanodeManager() + .getDatanode(dn.getDatanodeId()); + DFSTestUtil.resetLastUpdatesWithOffset(dnDes, -(staleInterval + 1)); } // Instead of waiting, explicitly call heartbeatCheck to // let heartbeat manager to detect stale nodes @@ -689,9 +692,9 @@ public class TestReplicationPolicy { for (int i = 0; i < 4; i++) { DataNode dn = miniCluster.getDataNodes().get(i); DataNodeTestUtils.setHeartbeatsDisabledForTests(dn, true); - miniCluster.getNameNode().getNamesystem().getBlockManager() - .getDatanodeManager().getDatanode(dn.getDatanodeId()) - .setLastUpdate(Time.now() - staleInterval - 1); + DatanodeDescriptor dnDesc = miniCluster.getNameNode().getNamesystem().getBlockManager() + .getDatanodeManager().getDatanode(dn.getDatanodeId()); + DFSTestUtil.resetLastUpdatesWithOffset(dnDesc, -(staleInterval + 1)); } // Explicitly call heartbeatCheck miniCluster.getNameNode().getNamesystem().getBlockManager() @@ -710,14 +713,15 @@ public class TestReplicationPolicy { assertEquals(targets.length, 3); assertTrue(isOnSameRack(targets[0], staleNodeInfo)); - // Step 3. Set 2 stale datanodes back to healthy nodes, + // Step 3. Set 2 stale datanodes back to healthy nodes, // still have 2 stale nodes for (int i = 2; i < 4; i++) { DataNode dn = miniCluster.getDataNodes().get(i); DataNodeTestUtils.setHeartbeatsDisabledForTests(dn, false); - miniCluster.getNameNode().getNamesystem().getBlockManager() - .getDatanodeManager().getDatanode(dn.getDatanodeId()) - .setLastUpdate(Time.now()); + DatanodeDescriptor dnDesc = miniCluster.getNameNode().getNamesystem() + .getBlockManager().getDatanodeManager() + .getDatanode(dn.getDatanodeId()); + DFSTestUtil.resetLastUpdatesWithOffset(dnDesc, 0); } // Explicitly call heartbeatCheck miniCluster.getNameNode().getNamesystem().getBlockManager() @@ -973,7 +977,7 @@ public class TestReplicationPolicy { // Refresh the last update time for all the datanodes for (int i = 0; i < dataNodes.length; i++) { - dataNodes[i].setLastUpdate(Time.now()); + DFSTestUtil.resetLastUpdatesWithOffset(dataNodes[i], 0); } List first = new ArrayList(); http://git-wip-us.apache.org/repos/asf/hadoop/blob/75ead273/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/datanode/BlockReportTestBase.java ---------------------------------------------------------------------- diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/datanode/BlockReportTestBase.java b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/datanode/BlockReportTestBase.java index 37c503c..de66db5 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/datanode/BlockReportTestBase.java +++ b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/datanode/BlockReportTestBase.java @@ -660,12 +660,12 @@ public abstract class BlockReportTestBase { final DataNode dn1 = cluster.getDataNodes().get(DN_N1); String bpid = cluster.getNamesystem().getBlockPoolId(); Replica r = DataNodeTestUtils.fetchReplicaInfo(dn1, bpid, bl.getBlockId()); - long start = Time.now(); + long start = Time.monotonicNow(); int count = 0; while (r == null) { waitTil(5); r = DataNodeTestUtils.fetchReplicaInfo(dn1, bpid, bl.getBlockId()); - long waiting_period = Time.now() - start; + long waiting_period = Time.monotonicNow() - start; if (count++ % 100 == 0) if(LOG.isDebugEnabled()) { LOG.debug("Has been waiting for " + waiting_period + " ms."); @@ -679,7 +679,7 @@ public abstract class BlockReportTestBase { if(LOG.isDebugEnabled()) { LOG.debug("Replica state before the loop " + state.getValue()); } - start = Time.now(); + start = Time.monotonicNow(); while (state != HdfsServerConstants.ReplicaState.TEMPORARY) { waitTil(5); state = r.getState(); @@ -687,7 +687,7 @@ public abstract class BlockReportTestBase { LOG.debug("Keep waiting for " + bl.getBlockName() + " is in state " + state.getValue()); } - if (Time.now() - start > TIMEOUT) + if (Time.monotonicNow() - start > TIMEOUT) assertTrue("Was waiting too long for a replica to become TEMPORARY", tooLongWait); } http://git-wip-us.apache.org/repos/asf/hadoop/blob/75ead273/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/datanode/TestBlockReplacement.java ---------------------------------------------------------------------- diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/datanode/TestBlockReplacement.java b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/datanode/TestBlockReplacement.java index 1f2c1b7..2c4795a 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/datanode/TestBlockReplacement.java +++ b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/datanode/TestBlockReplacement.java @@ -73,7 +73,7 @@ public class TestBlockReplacement { long bandwidthPerSec = 1024*1024L; final long TOTAL_BYTES =6*bandwidthPerSec; long bytesToSend = TOTAL_BYTES; - long start = Time.now(); + long start = Time.monotonicNow(); DataTransferThrottler throttler = new DataTransferThrottler(bandwidthPerSec); long totalBytes = 0L; long bytesSent = 1024*512L; // 0.5MB @@ -86,7 +86,7 @@ public class TestBlockReplacement { Thread.sleep(1000); } catch (InterruptedException ignored) {} throttler.throttle(bytesToSend); - long end = Time.now(); + long end = Time.monotonicNow(); assertTrue(totalBytes*1000/(end-start)<=bandwidthPerSec); } @@ -254,7 +254,7 @@ public class TestBlockReplacement { throws IOException, TimeoutException { boolean notDone; final long TIMEOUT = 20000L; - long starttime = Time.now(); + long starttime = Time.monotonicNow(); long failtime = starttime + TIMEOUT; do { try { @@ -279,7 +279,7 @@ public class TestBlockReplacement { } } } - if (Time.now() > failtime) { + if (Time.monotonicNow() > failtime) { String expectedNodesList = ""; String currentNodesList = ""; for (DatanodeInfo dn : includeNodes) http://git-wip-us.apache.org/repos/asf/hadoop/blob/75ead273/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/TestNamenodeCapacityReport.java ---------------------------------------------------------------------- diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/TestNamenodeCapacityReport.java b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/TestNamenodeCapacityReport.java index 35a611b..fd611ce 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/TestNamenodeCapacityReport.java +++ b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/TestNamenodeCapacityReport.java @@ -33,6 +33,7 @@ import org.apache.hadoop.fs.DF; import org.apache.hadoop.fs.Path; import org.apache.hadoop.hdfs.DFSConfigKeys; import org.apache.hadoop.hdfs.DFSOutputStream; +import org.apache.hadoop.hdfs.DFSTestUtil; import org.apache.hadoop.hdfs.DFSUtil; import org.apache.hadoop.hdfs.DistributedFileSystem; import org.apache.hadoop.hdfs.HdfsConfiguration; @@ -199,7 +200,7 @@ public class TestNamenodeCapacityReport { DataNode dn = datanodes.get(i); DatanodeDescriptor dnd = dnm.getDatanode(dn.getDatanodeId()); dn.shutdown(); - dnd.setLastUpdate(0L); + DFSTestUtil.setDatanodeDead(dnd); BlockManagerTestUtil.checkHeartbeat(namesystem.getBlockManager()); expectedInServiceNodes--; assertEquals(expectedInServiceNodes, namesystem.getNumLiveDataNodes()); @@ -278,7 +279,7 @@ public class TestNamenodeCapacityReport { dn.shutdown(); // force it to appear dead so live count decreases DatanodeDescriptor dnDesc = dnm.getDatanode(dn.getDatanodeId()); - dnDesc.setLastUpdate(0L); + DFSTestUtil.setDatanodeDead(dnDesc); BlockManagerTestUtil.checkHeartbeat(namesystem.getBlockManager()); assertEquals(nodes-1-i, namesystem.getNumLiveDataNodes()); // first few nodes are already out of service http://git-wip-us.apache.org/repos/asf/hadoop/blob/75ead273/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/metrics/TestNameNodeMetrics.java ---------------------------------------------------------------------- diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/metrics/TestNameNodeMetrics.java b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/metrics/TestNameNodeMetrics.java index 6771ad8..9e96a8f 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/metrics/TestNameNodeMetrics.java +++ b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/metrics/TestNameNodeMetrics.java @@ -43,6 +43,7 @@ import org.apache.hadoop.hdfs.protocol.HdfsConstants.SafeModeAction; import org.apache.hadoop.hdfs.protocol.LocatedBlock; import org.apache.hadoop.hdfs.server.blockmanagement.BlockManager; 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.namenode.FSNamesystem; @@ -162,9 +163,10 @@ public class TestNameNodeMetrics { long staleInterval = CONF.getLong( DFSConfigKeys.DFS_NAMENODE_STALE_DATANODE_INTERVAL_KEY, DFSConfigKeys.DFS_NAMENODE_STALE_DATANODE_INTERVAL_DEFAULT); - cluster.getNameNode().getNamesystem().getBlockManager() - .getDatanodeManager().getDatanode(dn.getDatanodeId()) - .setLastUpdate(Time.now() - staleInterval - 1); + DatanodeDescriptor dnDes = cluster.getNameNode().getNamesystem() + .getBlockManager().getDatanodeManager() + .getDatanode(dn.getDatanodeId()); + DFSTestUtil.resetLastUpdatesWithOffset(dnDes, -(staleInterval + 1)); } // Let HeartbeatManager to check heartbeat BlockManagerTestUtil.checkHeartbeat(cluster.getNameNode().getNamesystem() @@ -175,9 +177,10 @@ public class TestNameNodeMetrics { for (int i = 0; i < 2; i++) { DataNode dn = cluster.getDataNodes().get(i); DataNodeTestUtils.setHeartbeatsDisabledForTests(dn, false); - cluster.getNameNode().getNamesystem().getBlockManager() - .getDatanodeManager().getDatanode(dn.getDatanodeId()) - .setLastUpdate(Time.now()); + DatanodeDescriptor dnDes = cluster.getNameNode().getNamesystem() + .getBlockManager().getDatanodeManager() + .getDatanode(dn.getDatanodeId()); + DFSTestUtil.resetLastUpdatesWithOffset(dnDes, 0); } // Let HeartbeatManager to refresh