Author: wang Date: Thu Oct 24 00:08:15 2013 New Revision: 1535217 URL: http://svn.apache.org/r1535217 Log: HDFS-5404 Resolve regressions in Windows compatibility on HDFS-4949 branch. Contributed by Chris Nauroth.
Modified: hadoop/common/branches/HDFS-4949/hadoop-hdfs-project/hadoop-hdfs/CHANGES-HDFS-4949.txt hadoop/common/branches/HDFS-4949/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/datanode/TestFsDatasetCache.java hadoop/common/branches/HDFS-4949/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/TestPathBasedCacheRequests.java Modified: hadoop/common/branches/HDFS-4949/hadoop-hdfs-project/hadoop-hdfs/CHANGES-HDFS-4949.txt URL: http://svn.apache.org/viewvc/hadoop/common/branches/HDFS-4949/hadoop-hdfs-project/hadoop-hdfs/CHANGES-HDFS-4949.txt?rev=1535217&r1=1535216&r2=1535217&view=diff ============================================================================== --- hadoop/common/branches/HDFS-4949/hadoop-hdfs-project/hadoop-hdfs/CHANGES-HDFS-4949.txt (original) +++ hadoop/common/branches/HDFS-4949/hadoop-hdfs-project/hadoop-hdfs/CHANGES-HDFS-4949.txt Thu Oct 24 00:08:15 2013 @@ -115,3 +115,6 @@ HDFS-4949 (Unreleased) HDFS-5385. Caching RPCs are AtMostOnce, but do not persist client ID and call ID to edit log. (Chris Nauroth via Colin Patrick McCabe) + HDFS-5404. Resolve regressions in Windows compatibility on HDFS-4949 + branch. (Chris Nauroth via Andrew Wang) + Modified: hadoop/common/branches/HDFS-4949/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/datanode/TestFsDatasetCache.java URL: http://svn.apache.org/viewvc/hadoop/common/branches/HDFS-4949/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/datanode/TestFsDatasetCache.java?rev=1535217&r1=1535216&r2=1535217&view=diff ============================================================================== --- hadoop/common/branches/HDFS-4949/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/datanode/TestFsDatasetCache.java (original) +++ hadoop/common/branches/HDFS-4949/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/datanode/TestFsDatasetCache.java Thu Oct 24 00:08:15 2013 @@ -18,6 +18,7 @@ package org.apache.hadoop.hdfs.server.datanode; import static org.junit.Assert.assertEquals; +import static org.junit.Assume.assumeTrue; import static org.mockito.Matchers.any; import static org.mockito.Matchers.anyLong; import static org.mockito.Matchers.anyInt; @@ -50,6 +51,7 @@ import org.apache.hadoop.hdfs.server.pro import org.apache.hadoop.hdfs.server.protocol.HeartbeatResponse; import org.apache.hadoop.hdfs.server.protocol.NNHAStatusHeartbeat; import org.apache.hadoop.hdfs.server.protocol.StorageReport; +import org.apache.hadoop.io.nativeio.NativeIO; import org.apache.log4j.Logger; import org.junit.After; import org.junit.Before; @@ -72,6 +74,8 @@ public class TestFsDatasetCache { @Before public void setUp() throws Exception { + assumeTrue(!Path.WINDOWS); + assumeTrue(NativeIO.isAvailable()); conf = new HdfsConfiguration(); conf.setLong(DFSConfigKeys.DFS_BLOCK_SIZE_KEY, BLOCK_SIZE); conf.setLong(DFSConfigKeys.DFS_DATANODE_MAX_LOCKED_MEMORY_KEY, Modified: hadoop/common/branches/HDFS-4949/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/TestPathBasedCacheRequests.java URL: http://svn.apache.org/viewvc/hadoop/common/branches/HDFS-4949/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/TestPathBasedCacheRequests.java?rev=1535217&r1=1535216&r2=1535217&view=diff ============================================================================== --- hadoop/common/branches/HDFS-4949/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/TestPathBasedCacheRequests.java (original) +++ hadoop/common/branches/HDFS-4949/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/TestPathBasedCacheRequests.java Thu Oct 24 00:08:15 2013 @@ -447,77 +447,74 @@ public class TestPathBasedCacheRequests @Test(timeout=60000) public void testCacheManagerRestart() throws Exception { + cluster.shutdown(); + cluster = null; HdfsConfiguration conf = createCachingConf(); - MiniDFSCluster cluster = - new MiniDFSCluster.Builder(conf).numDataNodes(0).build(); + cluster = new MiniDFSCluster.Builder(conf).numDataNodes(0).build(); - try { - cluster.waitActive(); - DistributedFileSystem dfs = cluster.getFileSystem(); + cluster.waitActive(); + DistributedFileSystem dfs = cluster.getFileSystem(); - // Create and validate a pool - final String pool = "poolparty"; - String groupName = "partygroup"; - FsPermission mode = new FsPermission((short)0777); - int weight = 747; - dfs.addCachePool(new CachePoolInfo(pool) - .setGroupName(groupName) - .setMode(mode) - .setWeight(weight)); - RemoteIterator<CachePoolInfo> pit = dfs.listCachePools(); - assertTrue("No cache pools found", pit.hasNext()); - CachePoolInfo info = pit.next(); - assertEquals(pool, info.getPoolName()); - assertEquals(groupName, info.getGroupName()); - assertEquals(mode, info.getMode()); - assertEquals(weight, (int)info.getWeight()); - assertFalse("Unexpected # of cache pools found", pit.hasNext()); + // Create and validate a pool + final String pool = "poolparty"; + String groupName = "partygroup"; + FsPermission mode = new FsPermission((short)0777); + int weight = 747; + dfs.addCachePool(new CachePoolInfo(pool) + .setGroupName(groupName) + .setMode(mode) + .setWeight(weight)); + RemoteIterator<CachePoolInfo> pit = dfs.listCachePools(); + assertTrue("No cache pools found", pit.hasNext()); + CachePoolInfo info = pit.next(); + assertEquals(pool, info.getPoolName()); + assertEquals(groupName, info.getGroupName()); + assertEquals(mode, info.getMode()); + assertEquals(weight, (int)info.getWeight()); + assertFalse("Unexpected # of cache pools found", pit.hasNext()); - // Create some cache entries - int numEntries = 10; - String entryPrefix = "/party-"; - for (int i=0; i<numEntries; i++) { - dfs.addPathBasedCacheDirective( - new PathBasedCacheDirective.Builder(). - setPath(new Path(entryPrefix + i)).setPool(pool).build()); - } - RemoteIterator<PathBasedCacheDescriptor> dit - = dfs.listPathBasedCacheDescriptors(null, null); - for (int i=0; i<numEntries; i++) { - assertTrue("Unexpected # of cache entries: " + i, dit.hasNext()); - PathBasedCacheDescriptor cd = dit.next(); - assertEquals(i+1, cd.getEntryId()); - assertEquals(entryPrefix + i, cd.getPath().toUri().getPath()); - assertEquals(pool, cd.getPool()); - } - assertFalse("Unexpected # of cache descriptors found", dit.hasNext()); + // Create some cache entries + int numEntries = 10; + String entryPrefix = "/party-"; + for (int i=0; i<numEntries; i++) { + dfs.addPathBasedCacheDirective( + new PathBasedCacheDirective.Builder(). + setPath(new Path(entryPrefix + i)).setPool(pool).build()); + } + RemoteIterator<PathBasedCacheDescriptor> dit + = dfs.listPathBasedCacheDescriptors(null, null); + for (int i=0; i<numEntries; i++) { + assertTrue("Unexpected # of cache entries: " + i, dit.hasNext()); + PathBasedCacheDescriptor cd = dit.next(); + assertEquals(i+1, cd.getEntryId()); + assertEquals(entryPrefix + i, cd.getPath().toUri().getPath()); + assertEquals(pool, cd.getPool()); + } + assertFalse("Unexpected # of cache descriptors found", dit.hasNext()); - // Restart namenode - cluster.restartNameNode(); + // Restart namenode + cluster.restartNameNode(); - // Check that state came back up - pit = dfs.listCachePools(); - assertTrue("No cache pools found", pit.hasNext()); - info = pit.next(); - assertEquals(pool, info.getPoolName()); - assertEquals(pool, info.getPoolName()); - assertEquals(groupName, info.getGroupName()); - assertEquals(mode, info.getMode()); - assertEquals(weight, (int)info.getWeight()); - assertFalse("Unexpected # of cache pools found", pit.hasNext()); + // Check that state came back up + pit = dfs.listCachePools(); + assertTrue("No cache pools found", pit.hasNext()); + info = pit.next(); + assertEquals(pool, info.getPoolName()); + assertEquals(pool, info.getPoolName()); + assertEquals(groupName, info.getGroupName()); + assertEquals(mode, info.getMode()); + assertEquals(weight, (int)info.getWeight()); + assertFalse("Unexpected # of cache pools found", pit.hasNext()); - dit = dfs.listPathBasedCacheDescriptors(null, null); - for (int i=0; i<numEntries; i++) { - assertTrue("Unexpected # of cache entries: " + i, dit.hasNext()); - PathBasedCacheDescriptor cd = dit.next(); - assertEquals(i+1, cd.getEntryId()); - assertEquals(entryPrefix + i, cd.getPath().toUri().getPath()); - assertEquals(pool, cd.getPool()); - } - assertFalse("Unexpected # of cache descriptors found", dit.hasNext()); - } finally { - cluster.shutdown(); + dit = dfs.listPathBasedCacheDescriptors(null, null); + for (int i=0; i<numEntries; i++) { + assertTrue("Unexpected # of cache entries: " + i, dit.hasNext()); + PathBasedCacheDescriptor cd = dit.next(); + assertEquals(i+1, cd.getEntryId()); + assertEquals(entryPrefix + i, cd.getPath().toUri().getPath()); + assertEquals(pool, cd.getPool()); } + assertFalse("Unexpected # of cache descriptors found", dit.hasNext()); } private static void waitForCachedBlocks(NameNode nn,