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 ji...@apache.org on 2015/05/21 01:48:51 UTC
[27/50] [abbrv] hadoop git commit: HDFS-6348. SecondaryNameNode not
terminating properly on runtime exceptions (Contributed by Rakesh R)
HDFS-6348. SecondaryNameNode not terminating properly on runtime exceptions (Contributed by Rakesh R)
Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo
Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/93972a33
Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/93972a33
Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/93972a33
Branch: refs/heads/HDFS-7240
Commit: 93972a332a9fc6390447fc5fc9785c98fb4c3344
Parents: 0790275
Author: Vinayakumar B <vi...@apache.org>
Authored: Tue May 19 12:24:25 2015 +0530
Committer: Vinayakumar B <vi...@apache.org>
Committed: Tue May 19 12:24:25 2015 +0530
----------------------------------------------------------------------
hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt | 5 ++-
.../hdfs/server/namenode/SecondaryNameNode.java | 33 ++++++++++----------
.../hdfs/server/namenode/TestStartup.java | 18 ++++++++++-
3 files changed, 37 insertions(+), 19 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/hadoop/blob/93972a33/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 35c3b5a..e5fcba2 100644
--- a/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt
+++ b/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt
@@ -1,4 +1,4 @@
-Hadoop HDFS Change Log
+ Hadoop HDFS Change Log
Trunk (Unreleased)
@@ -788,6 +788,9 @@ Release 2.8.0 - UNRELEASED
HDFS-8403. Eliminate retries in TestFileCreation
#testOverwriteOpenForWrite. (Arpit Agarwal via wheat9)
+ HDFS-6348. SecondaryNameNode not terminating properly on runtime exceptions
+ (Rakesh R via vinayakumarb)
+
Release 2.7.1 - UNRELEASED
INCOMPATIBLE CHANGES
http://git-wip-us.apache.org/repos/asf/hadoop/blob/93972a33/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/SecondaryNameNode.java
----------------------------------------------------------------------
diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/SecondaryNameNode.java b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/SecondaryNameNode.java
index b499e74..0fa1cd5 100644
--- a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/SecondaryNameNode.java
+++ b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/SecondaryNameNode.java
@@ -667,29 +667,28 @@ public class SecondaryNameNode implements Runnable,
opts.usage();
System.exit(0);
}
-
- StringUtils.startupShutdownMessage(SecondaryNameNode.class, argv, LOG);
- Configuration tconf = new HdfsConfiguration();
- SecondaryNameNode secondary = null;
+
try {
+ StringUtils.startupShutdownMessage(SecondaryNameNode.class, argv, LOG);
+ Configuration tconf = new HdfsConfiguration();
+ SecondaryNameNode secondary = null;
secondary = new SecondaryNameNode(tconf, opts);
- } catch (IOException ioe) {
- LOG.fatal("Failed to start secondary namenode", ioe);
- terminate(1);
- }
- if (opts != null && opts.getCommand() != null) {
- int ret = secondary.processStartupCommand(opts);
- terminate(ret);
- }
+ if (opts != null && opts.getCommand() != null) {
+ int ret = secondary.processStartupCommand(opts);
+ terminate(ret);
+ }
- if (secondary != null) {
- secondary.startCheckpointThread();
- secondary.join();
+ if (secondary != null) {
+ secondary.startCheckpointThread();
+ secondary.join();
+ }
+ } catch (Throwable e) {
+ LOG.fatal("Failed to start secondary namenode", e);
+ terminate(1);
}
}
-
-
+
public void startCheckpointThread() {
Preconditions.checkState(checkpointThread == null,
"Should not already have a thread");
http://git-wip-us.apache.org/repos/asf/hadoop/blob/93972a33/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/TestStartup.java
----------------------------------------------------------------------
diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/TestStartup.java b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/TestStartup.java
index 01621ad..4d3cb75 100644
--- a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/TestStartup.java
+++ b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/TestStartup.java
@@ -60,6 +60,8 @@ import org.apache.hadoop.hdfs.util.MD5FileUtils;
import org.apache.hadoop.io.MD5Hash;
import org.apache.hadoop.test.GenericTestUtils;
import org.apache.hadoop.test.PathUtils;
+import org.apache.hadoop.util.ExitUtil.ExitException;
+import org.apache.hadoop.util.ExitUtil;
import org.apache.hadoop.util.StringUtils;
import org.apache.log4j.Logger;
import org.junit.After;
@@ -87,6 +89,8 @@ public class TestStartup {
@Before
public void setUp() throws Exception {
+ ExitUtil.disableSystemExit();
+ ExitUtil.resetFirstExitException();
config = new HdfsConfiguration();
hdfsDir = new File(MiniDFSCluster.getBaseDirectory());
@@ -403,7 +407,19 @@ public class TestStartup {
cluster.shutdown();
}
}
-
+
+ @Test(timeout = 30000)
+ public void testSNNStartupWithRuntimeException() throws Exception {
+ String[] argv = new String[] { "-checkpoint" };
+ try {
+ SecondaryNameNode.main(argv);
+ fail("Failed to handle runtime exceptions during SNN startup!");
+ } catch (ExitException ee) {
+ GenericTestUtils.assertExceptionContains("ExitException", ee);
+ assertTrue("Didn't termiated properly ", ExitUtil.terminateCalled());
+ }
+ }
+
@Test
public void testCompression() throws IOException {
LOG.info("Test compressing image.");