You are viewing a plain text version of this content. The canonical link for it is here.
Posted to common-commits@hadoop.apache.org by wh...@apache.org on 2014/11/20 19:28:06 UTC
hadoop git commit: HDFS-7413. Some unit tests should use
NameNodeProtocols instead of FSNameSystem. Contributed by Haohui Mai.
Repository: hadoop
Updated Branches:
refs/heads/branch-2 7ba5bb0c5 -> 4b99bde92
HDFS-7413. Some unit tests should use NameNodeProtocols instead of FSNameSystem. Contributed by Haohui Mai.
Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo
Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/4b99bde9
Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/4b99bde9
Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/4b99bde9
Branch: refs/heads/branch-2
Commit: 4b99bde92960ea5bd022333c7e065a702817a654
Parents: 7ba5bb0
Author: Haohui Mai <wh...@apache.org>
Authored: Thu Nov 20 10:27:44 2014 -0800
Committer: Haohui Mai <wh...@apache.org>
Committed: Thu Nov 20 10:28:03 2014 -0800
----------------------------------------------------------------------
hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt | 3 +
.../hdfs/server/namenode/TestEditLogRace.java | 39 +++---
.../hdfs/server/namenode/TestMetaSave.java | 23 ++--
.../server/namenode/TestNamenodeRetryCache.java | 127 +++++++++----------
4 files changed, 96 insertions(+), 96 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/hadoop/blob/4b99bde9/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt
----------------------------------------------------------------------
diff --git a/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt b/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt
index b1ccb0f..e12fee3 100644
--- a/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt
+++ b/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt
@@ -121,6 +121,9 @@ Release 2.7.0 - UNRELEASED
HDFS-7409. Allow dead nodes to finish decommissioning if all files are
fully replicated. (wang)
+ HDFS-7413. Some unit tests should use NameNodeProtocols instead of
+ FSNameSystem. (wheat9)
+
OPTIMIZATIONS
BUG FIXES
http://git-wip-us.apache.org/repos/asf/hadoop/blob/4b99bde9/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/TestEditLogRace.java
----------------------------------------------------------------------
diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/TestEditLogRace.java b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/TestEditLogRace.java
index 479ee9f..6859fdc 100644
--- a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/TestEditLogRace.java
+++ b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/TestEditLogRace.java
@@ -46,6 +46,7 @@ import org.apache.hadoop.hdfs.server.common.HdfsServerConstants.NamenodeRole;
import org.apache.hadoop.hdfs.server.common.Storage.StorageDirectory;
import org.apache.hadoop.hdfs.server.namenode.JournalSet.JournalAndStream;
import org.apache.hadoop.hdfs.server.namenode.NNStorage.NameNodeDirType;
+import org.apache.hadoop.hdfs.server.protocol.NamenodeProtocols;
import org.apache.hadoop.util.Time;
import org.apache.log4j.Level;
import org.junit.Test;
@@ -99,15 +100,15 @@ public class TestEditLogRace {
// an object that does a bunch of transactions
//
static class Transactions implements Runnable {
- final FSNamesystem namesystem;
+ final NamenodeProtocols nn;
short replication = 3;
long blockSize = 64;
volatile boolean stopped = false;
volatile Thread thr;
final AtomicReference<Throwable> caught;
- Transactions(FSNamesystem ns, AtomicReference<Throwable> caught) {
- namesystem = ns;
+ Transactions(NamenodeProtocols ns, AtomicReference<Throwable> caught) {
+ nn = ns;
this.caught = caught;
}
@@ -115,14 +116,14 @@ public class TestEditLogRace {
@Override
public void run() {
thr = Thread.currentThread();
- PermissionStatus p = namesystem.createFsOwnerPermissions(
- new FsPermission((short)0777));
+ FsPermission p = new FsPermission((short)0777);
+
int i = 0;
while (!stopped) {
try {
String dirname = "/thr-" + thr.getId() + "-dir-" + i;
- namesystem.mkdirs(dirname, p, true);
- namesystem.delete(dirname, true);
+ nn.mkdirs(dirname, p, true);
+ nn.delete(dirname, true);
} catch (SafeModeException sme) {
// This is OK - the tests will bring NN in and out of safemode
} catch (Throwable e) {
@@ -143,7 +144,7 @@ public class TestEditLogRace {
}
}
- private void startTransactionWorkers(FSNamesystem namesystem,
+ private void startTransactionWorkers(NamenodeProtocols namesystem,
AtomicReference<Throwable> caughtErr) {
// Create threads and make them run transactions concurrently.
for (int i = 0; i < NUM_THREADS; i++) {
@@ -163,7 +164,7 @@ public class TestEditLogRace {
Thread thr = worker.getThread();
try {
if (thr != null) thr.join();
- } catch (InterruptedException ie) {}
+ } catch (InterruptedException ignored) {}
}
}
@@ -183,11 +184,11 @@ public class TestEditLogRace {
cluster = new MiniDFSCluster.Builder(conf).numDataNodes(NUM_DATA_NODES).build();
cluster.waitActive();
fileSys = cluster.getFileSystem();
- final FSNamesystem namesystem = cluster.getNamesystem();
- FSImage fsimage = namesystem.getFSImage();
+ final NamenodeProtocols nn = cluster.getNameNode().getRpcServer();
+ FSImage fsimage = cluster.getNamesystem().getFSImage();
StorageDirectory sd = fsimage.getStorage().getStorageDir(0);
- startTransactionWorkers(namesystem, caughtErr);
+ startTransactionWorkers(nn, caughtErr);
long previousLogTxId = 1;
@@ -197,12 +198,13 @@ public class TestEditLogRace {
} catch (InterruptedException e) {}
LOG.info("Starting roll " + i + ".");
- CheckpointSignature sig = namesystem.rollEditLog();
+ CheckpointSignature sig = nn.rollEditLog();
long nextLog = sig.curSegmentTxId;
String logFileName = NNStorage.getFinalizedEditsFileName(
previousLogTxId, nextLog - 1);
- previousLogTxId += verifyEditLogs(namesystem, fsimage, logFileName, previousLogTxId);
+ previousLogTxId += verifyEditLogs(cluster.getNamesystem(), fsimage,
+ logFileName, previousLogTxId);
assertEquals(previousLogTxId, nextLog);
@@ -264,16 +266,17 @@ public class TestEditLogRace {
cluster.waitActive();
fileSys = cluster.getFileSystem();
final FSNamesystem namesystem = cluster.getNamesystem();
+ final NamenodeProtocols nn = cluster.getNameNodeRpc();
FSImage fsimage = namesystem.getFSImage();
FSEditLog editLog = fsimage.getEditLog();
- startTransactionWorkers(namesystem, caughtErr);
+ startTransactionWorkers(nn, caughtErr);
for (int i = 0; i < NUM_SAVE_IMAGE && caughtErr.get() == null; i++) {
try {
Thread.sleep(20);
- } catch (InterruptedException e) {}
+ } catch (InterruptedException ignored) {}
LOG.info("Save " + i + ": entering safe mode");
@@ -433,7 +436,7 @@ public class TestEditLogRace {
NNStorage.getInProgressEditsFileName(4),
4));
} finally {
- LOG.info("Closing namesystem");
+ LOG.info("Closing nn");
if(namesystem != null) namesystem.close();
}
}
@@ -527,7 +530,7 @@ public class TestEditLogRace {
NNStorage.getInProgressEditsFileName(4),
4));
} finally {
- LOG.info("Closing namesystem");
+ LOG.info("Closing nn");
if(namesystem != null) namesystem.close();
}
}
http://git-wip-us.apache.org/repos/asf/hadoop/blob/4b99bde9/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/TestMetaSave.java
----------------------------------------------------------------------
diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/TestMetaSave.java b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/TestMetaSave.java
index 080dcee..899cf41 100644
--- a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/TestMetaSave.java
+++ b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/TestMetaSave.java
@@ -33,6 +33,7 @@ import org.apache.hadoop.fs.CommonConfigurationKeys;
import org.apache.hadoop.fs.FSDataOutputStream;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
+import org.apache.hadoop.hdfs.server.protocol.NamenodeProtocols;
import org.apache.hadoop.io.IOUtils;
import org.apache.hadoop.hdfs.DFSConfigKeys;
import org.apache.hadoop.hdfs.HdfsConfiguration;
@@ -50,7 +51,7 @@ public class TestMetaSave {
static final int blockSize = 8192;
private static MiniDFSCluster cluster = null;
private static FileSystem fileSys = null;
- private static FSNamesystem namesystem = null;
+ private static NamenodeProtocols nnRpc = null;
private void createFile(FileSystem fileSys, Path name) throws IOException {
FSDataOutputStream stm = fileSys.create(name, true, fileSys.getConf()
@@ -76,7 +77,7 @@ public class TestMetaSave {
cluster = new MiniDFSCluster.Builder(conf).numDataNodes(NUM_DATA_NODES).build();
cluster.waitActive();
fileSys = cluster.getFileSystem();
- namesystem = cluster.getNamesystem();
+ nnRpc = cluster.getNameNodeRpc();
}
/**
@@ -92,9 +93,9 @@ public class TestMetaSave {
cluster.stopDataNode(1);
// wait for namenode to discover that a datanode is dead
Thread.sleep(15000);
- namesystem.setReplication("/filestatus0", (short) 4);
+ nnRpc.setReplication("/filestatus0", (short) 4);
- namesystem.metaSave("metasave.out.txt");
+ nnRpc.metaSave("metasave.out.txt");
// Verification
FileInputStream fstream = new FileInputStream(getLogFile(
@@ -110,7 +111,7 @@ public class TestMetaSave {
assertTrue(line.equals("Live Datanodes: 1"));
line = reader.readLine();
assertTrue(line.equals("Dead Datanodes: 1"));
- line = reader.readLine();
+ reader.readLine();
line = reader.readLine();
assertTrue(line.matches("^/filestatus[01]:.*"));
} finally {
@@ -133,11 +134,11 @@ public class TestMetaSave {
cluster.stopDataNode(1);
// wait for namenode to discover that a datanode is dead
Thread.sleep(15000);
- namesystem.setReplication("/filestatus0", (short) 4);
- namesystem.delete("/filestatus0", true);
- namesystem.delete("/filestatus1", true);
+ nnRpc.setReplication("/filestatus0", (short) 4);
+ nnRpc.delete("/filestatus0", true);
+ nnRpc.delete("/filestatus1", true);
- namesystem.metaSave("metasaveAfterDelete.out.txt");
+ nnRpc.metaSave("metasaveAfterDelete.out.txt");
// Verification
BufferedReader reader = null;
@@ -169,8 +170,8 @@ public class TestMetaSave {
@Test
public void testMetaSaveOverwrite() throws Exception {
// metaSave twice.
- namesystem.metaSave("metaSaveOverwrite.out.txt");
- namesystem.metaSave("metaSaveOverwrite.out.txt");
+ nnRpc.metaSave("metaSaveOverwrite.out.txt");
+ nnRpc.metaSave("metaSaveOverwrite.out.txt");
// Read output file.
FileInputStream fis = null;
http://git-wip-us.apache.org/repos/asf/hadoop/blob/4b99bde9/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/TestNamenodeRetryCache.java
----------------------------------------------------------------------
diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/TestNamenodeRetryCache.java b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/TestNamenodeRetryCache.java
index 6559b50..e9a4914 100644
--- a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/TestNamenodeRetryCache.java
+++ b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/TestNamenodeRetryCache.java
@@ -35,7 +35,6 @@ import org.apache.hadoop.fs.Options.Rename;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.fs.UnresolvedLinkException;
import org.apache.hadoop.fs.permission.FsPermission;
-import org.apache.hadoop.fs.permission.PermissionStatus;
import org.apache.hadoop.ha.HAServiceProtocol.HAServiceState;
import org.apache.hadoop.hdfs.DFSConfigKeys;
import org.apache.hadoop.hdfs.DFSTestUtil;
@@ -47,6 +46,8 @@ import org.apache.hadoop.hdfs.protocol.DatanodeID;
import org.apache.hadoop.hdfs.protocol.ExtendedBlock;
import org.apache.hadoop.hdfs.protocol.HdfsFileStatus;
import org.apache.hadoop.hdfs.protocol.LocatedBlock;
+import org.apache.hadoop.hdfs.server.protocol.NamenodeProtocols;
+import org.apache.hadoop.io.EnumSetWritable;
import org.apache.hadoop.ipc.ClientId;
import org.apache.hadoop.ipc.RPC.RpcKind;
import org.apache.hadoop.ipc.RetryCache.CacheEntry;
@@ -77,9 +78,8 @@ import org.junit.Test;
public class TestNamenodeRetryCache {
private static final byte[] CLIENT_ID = ClientId.getClientId();
private static MiniDFSCluster cluster;
- private static FSNamesystem namesystem;
- private static final PermissionStatus perm = new PermissionStatus(
- "TestNamenodeRetryCache", null, FsPermission.getDefault());
+ private static NamenodeProtocols nnRpc;
+ private static final FsPermission perm = FsPermission.getDefault();
private static DistributedFileSystem filesystem;
private static int callId = 100;
private static Configuration conf;
@@ -94,7 +94,7 @@ public class TestNamenodeRetryCache {
conf.setBoolean(DFSConfigKeys.DFS_NAMENODE_ACLS_ENABLED_KEY, true);
cluster = new MiniDFSCluster.Builder(conf).build();
cluster.waitActive();
- namesystem = cluster.getNamesystem();
+ nnRpc = cluster.getNameNode().getRpcServer();
filesystem = cluster.getFileSystem();
}
@@ -108,10 +108,6 @@ public class TestNamenodeRetryCache {
cluster.shutdown();
}
- public static void incrementCallId() {
- callId++;
- }
-
/** Set the current Server RPC call */
public static void newCall() {
Server.Call call = new Server.Call(++callId, 1, null, null,
@@ -142,15 +138,15 @@ public class TestNamenodeRetryCache {
// Two retried concat calls succeed
concatSetup(file1, file2);
newCall();
- namesystem.concat(file1, new String[]{file2});
- namesystem.concat(file1, new String[]{file2});
- namesystem.concat(file1, new String[]{file2});
+ nnRpc.concat(file1, new String[]{file2});
+ nnRpc.concat(file1, new String[]{file2});
+ nnRpc.concat(file1, new String[]{file2});
// A non-retried concat request fails
newCall();
try {
// Second non-retry call should fail with an exception
- namesystem.concat(file1, new String[]{file2});
+ nnRpc.concat(file1, new String[]{file2});
Assert.fail("testConcat - expected exception is not thrown");
} catch (IOException e) {
// Expected
@@ -165,15 +161,15 @@ public class TestNamenodeRetryCache {
String dir = "/testNamenodeRetryCache/testDelete";
// Two retried calls to create a non existent file
newCall();
- namesystem.mkdirs(dir, perm, true);
+ nnRpc.mkdirs(dir, perm, true);
newCall();
- Assert.assertTrue(namesystem.delete(dir, false));
- Assert.assertTrue(namesystem.delete(dir, false));
- Assert.assertTrue(namesystem.delete(dir, false));
+ Assert.assertTrue(nnRpc.delete(dir, false));
+ Assert.assertTrue(nnRpc.delete(dir, false));
+ Assert.assertTrue(nnRpc.delete(dir, false));
// non-retried call fails and gets false as return
newCall();
- Assert.assertFalse(namesystem.delete(dir, false));
+ Assert.assertFalse(nnRpc.delete(dir, false));
}
/**
@@ -185,15 +181,15 @@ public class TestNamenodeRetryCache {
// Two retried symlink calls succeed
newCall();
- namesystem.createSymlink(target, "/a/b", perm, true);
- namesystem.createSymlink(target, "/a/b", perm, true);
- namesystem.createSymlink(target, "/a/b", perm, true);
+ nnRpc.createSymlink(target, "/a/b", perm, true);
+ nnRpc.createSymlink(target, "/a/b", perm, true);
+ nnRpc.createSymlink(target, "/a/b", perm, true);
// non-retried call fails
newCall();
try {
// Second non-retry call should fail with an exception
- namesystem.createSymlink(target, "/a/b", perm, true);
+ nnRpc.createSymlink(target, "/a/b", perm, true);
Assert.fail("testCreateSymlink - expected exception is not thrown");
} catch (IOException e) {
// Expected
@@ -208,21 +204,16 @@ public class TestNamenodeRetryCache {
String src = "/testNamenodeRetryCache/testCreate/file";
// Two retried calls succeed
newCall();
- HdfsFileStatus status = namesystem.startFile(src, perm, "holder",
- "clientmachine", EnumSet.of(CreateFlag.CREATE), true, (short) 1,
- BlockSize, null);
- Assert.assertEquals(status, namesystem.startFile(src, perm,
- "holder", "clientmachine", EnumSet.of(CreateFlag.CREATE),
- true, (short) 1, BlockSize, null));
- Assert.assertEquals(status, namesystem.startFile(src, perm,
- "holder", "clientmachine", EnumSet.of(CreateFlag.CREATE),
- true, (short) 1, BlockSize, null));
+ HdfsFileStatus status = nnRpc.create(src, perm, "holder",
+ new EnumSetWritable<CreateFlag>(EnumSet.of(CreateFlag.CREATE)), true,
+ (short) 1, BlockSize, null);
+ Assert.assertEquals(status, nnRpc.create(src, perm, "holder", new EnumSetWritable<CreateFlag>(EnumSet.of(CreateFlag.CREATE)), true, (short) 1, BlockSize, null));
+ Assert.assertEquals(status, nnRpc.create(src, perm, "holder", new EnumSetWritable<CreateFlag>(EnumSet.of(CreateFlag.CREATE)), true, (short) 1, BlockSize, null));
// A non-retried call fails
newCall();
try {
- namesystem.startFile(src, perm, "holder", "clientmachine",
- EnumSet.of(CreateFlag.CREATE), true, (short) 1, BlockSize, null);
+ nnRpc.create(src, perm, "holder", new EnumSetWritable<CreateFlag>(EnumSet.of(CreateFlag.CREATE)), true, (short) 1, BlockSize, null);
Assert.fail("testCreate - expected exception is not thrown");
} catch (IOException e) {
// expected
@@ -241,14 +232,14 @@ public class TestNamenodeRetryCache {
// Retried append requests succeed
newCall();
- LocatedBlock b = namesystem.appendFile(src, "holder", "clientMachine");
- Assert.assertEquals(b, namesystem.appendFile(src, "holder", "clientMachine"));
- Assert.assertEquals(b, namesystem.appendFile(src, "holder", "clientMachine"));
+ LocatedBlock b = nnRpc.append(src, "holder");
+ Assert.assertEquals(b, nnRpc.append(src, "holder"));
+ Assert.assertEquals(b, nnRpc.append(src, "holder"));
// non-retried call fails
newCall();
try {
- namesystem.appendFile(src, "holder", "clientMachine");
+ nnRpc.append(src, "holder");
Assert.fail("testAppend - expected exception is not thrown");
} catch (Exception e) {
// Expected
@@ -264,17 +255,17 @@ public class TestNamenodeRetryCache {
String src = "/testNamenodeRetryCache/testRename1/src";
String target = "/testNamenodeRetryCache/testRename1/target";
resetCall();
- namesystem.mkdirs(src, perm, true);
+ nnRpc.mkdirs(src, perm, true);
// Retried renames succeed
newCall();
- Assert.assertTrue(namesystem.renameTo(src, target));
- Assert.assertTrue(namesystem.renameTo(src, target));
- Assert.assertTrue(namesystem.renameTo(src, target));
+ Assert.assertTrue(nnRpc.rename(src, target));
+ Assert.assertTrue(nnRpc.rename(src, target));
+ Assert.assertTrue(nnRpc.rename(src, target));
// A non-retried request fails
newCall();
- Assert.assertFalse(namesystem.renameTo(src, target));
+ Assert.assertFalse(nnRpc.rename(src, target));
}
/**
@@ -285,18 +276,18 @@ public class TestNamenodeRetryCache {
String src = "/testNamenodeRetryCache/testRename2/src";
String target = "/testNamenodeRetryCache/testRename2/target";
resetCall();
- namesystem.mkdirs(src, perm, true);
+ nnRpc.mkdirs(src, perm, true);
// Retried renames succeed
newCall();
- namesystem.renameTo(src, target, Rename.NONE);
- namesystem.renameTo(src, target, Rename.NONE);
- namesystem.renameTo(src, target, Rename.NONE);
+ nnRpc.rename2(src, target, Rename.NONE);
+ nnRpc.rename2(src, target, Rename.NONE);
+ nnRpc.rename2(src, target, Rename.NONE);
// A non-retried request fails
newCall();
try {
- namesystem.renameTo(src, target, Rename.NONE);
+ nnRpc.rename2(src, target, Rename.NONE);
Assert.fail("testRename 2 expected exception is not thrown");
} catch (IOException e) {
// expected
@@ -310,11 +301,12 @@ public class TestNamenodeRetryCache {
@Test(timeout = 60000)
public void testUpdatePipelineWithFailOver() throws Exception {
cluster.shutdown();
- namesystem = null;
+ nnRpc = null;
filesystem = null;
cluster = new MiniDFSCluster.Builder(conf).nnTopology(
MiniDFSNNTopology.simpleHATopology()).numDataNodes(1).build();
- FSNamesystem ns0 = cluster.getNamesystem(0);
+ cluster.waitActive();
+ NamenodeProtocols ns0 = cluster.getNameNodeRpc(0);
ExtendedBlock oldBlock = new ExtendedBlock();
ExtendedBlock newBlock = new ExtendedBlock();
DatanodeID[] newNodes = new DatanodeID[2];
@@ -345,20 +337,20 @@ public class TestNamenodeRetryCache {
public void testSnapshotMethods() throws Exception {
String dir = "/testNamenodeRetryCache/testCreateSnapshot/src";
resetCall();
- namesystem.mkdirs(dir, perm, true);
- namesystem.allowSnapshot(dir);
+ nnRpc.mkdirs(dir, perm, true);
+ nnRpc.allowSnapshot(dir);
// Test retry of create snapshot
newCall();
- String name = namesystem.createSnapshot(dir, "snap1");
- Assert.assertEquals(name, namesystem.createSnapshot(dir, "snap1"));
- Assert.assertEquals(name, namesystem.createSnapshot(dir, "snap1"));
- Assert.assertEquals(name, namesystem.createSnapshot(dir, "snap1"));
+ String name = nnRpc.createSnapshot(dir, "snap1");
+ Assert.assertEquals(name, nnRpc.createSnapshot(dir, "snap1"));
+ Assert.assertEquals(name, nnRpc.createSnapshot(dir, "snap1"));
+ Assert.assertEquals(name, nnRpc.createSnapshot(dir, "snap1"));
// Non retried calls should fail
newCall();
try {
- namesystem.createSnapshot(dir, "snap1");
+ nnRpc.createSnapshot(dir, "snap1");
Assert.fail("testSnapshotMethods expected exception is not thrown");
} catch (IOException e) {
// exptected
@@ -366,14 +358,14 @@ public class TestNamenodeRetryCache {
// Test retry of rename snapshot
newCall();
- namesystem.renameSnapshot(dir, "snap1", "snap2");
- namesystem.renameSnapshot(dir, "snap1", "snap2");
- namesystem.renameSnapshot(dir, "snap1", "snap2");
+ nnRpc.renameSnapshot(dir, "snap1", "snap2");
+ nnRpc.renameSnapshot(dir, "snap1", "snap2");
+ nnRpc.renameSnapshot(dir, "snap1", "snap2");
// Non retried calls should fail
newCall();
try {
- namesystem.renameSnapshot(dir, "snap1", "snap2");
+ nnRpc.renameSnapshot(dir, "snap1", "snap2");
Assert.fail("testSnapshotMethods expected exception is not thrown");
} catch (IOException e) {
// expected
@@ -381,14 +373,14 @@ public class TestNamenodeRetryCache {
// Test retry of delete snapshot
newCall();
- namesystem.deleteSnapshot(dir, "snap2");
- namesystem.deleteSnapshot(dir, "snap2");
- namesystem.deleteSnapshot(dir, "snap2");
+ nnRpc.deleteSnapshot(dir, "snap2");
+ nnRpc.deleteSnapshot(dir, "snap2");
+ nnRpc.deleteSnapshot(dir, "snap2");
// Non retried calls should fail
newCall();
try {
- namesystem.deleteSnapshot(dir, "snap2");
+ nnRpc.deleteSnapshot(dir, "snap2");
Assert.fail("testSnapshotMethods expected exception is not thrown");
} catch (IOException e) {
// expected
@@ -399,7 +391,7 @@ public class TestNamenodeRetryCache {
public void testRetryCacheConfig() {
// By default retry configuration should be enabled
Configuration conf = new HdfsConfiguration();
- Assert.assertNotNull(FSNamesystem.initRetryCache(conf));
+ Assert.assertNotNull(FSNamesystem.initRetryCache(conf));
// If retry cache is disabled, it should not be created
conf.setBoolean(DFSConfigKeys.DFS_NAMENODE_ENABLE_RETRY_CACHE_KEY, false);
@@ -413,7 +405,8 @@ public class TestNamenodeRetryCache {
@Test
public void testRetryCacheRebuild() throws Exception {
DFSTestUtil.runOperations(cluster, filesystem, conf, BlockSize, 0);
-
+ FSNamesystem namesystem = cluster.getNamesystem();
+
LightWeightCache<CacheEntry, CacheEntry> cacheSet =
(LightWeightCache<CacheEntry, CacheEntry>) namesystem.getRetryCache().getCacheSet();
assertEquals(23, cacheSet.size());
@@ -429,8 +422,8 @@ public class TestNamenodeRetryCache {
// restart NameNode
cluster.restartNameNode();
cluster.waitActive();
+
namesystem = cluster.getNamesystem();
-
// check retry cache
assertTrue(namesystem.hasRetryCache());
cacheSet = (LightWeightCache<CacheEntry, CacheEntry>) namesystem