Repository: hadoop Updated Branches: refs/heads/branch-2.8 5d86ce7b0 -> 66824b39f
HDFS-10601. Improve log message to include hostname when the NameNode is in safemode. Contributed by Kuhu Shukla. (cherry picked from commit ba62b50ebacd33b55eafc9db55a2fe5b4c80207a) Conflicts: hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/FSNamesystem.java Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/66824b39 Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/66824b39 Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/66824b39 Branch: refs/heads/branch-2.8 Commit: 66824b39fd023c6918b9312304faf0304a4cde3b Parents: 5d86ce7 Author: Kihwal Lee <kih...@apache.org> Authored: Thu Mar 16 11:07:13 2017 -0500 Committer: Kihwal Lee <kih...@apache.org> Committed: Thu Mar 16 11:07:13 2017 -0500 ---------------------------------------------------------------------- .../hdfs/server/namenode/FSNamesystem.java | 8 ++++++- .../org/apache/hadoop/hdfs/TestSafeMode.java | 24 ++++++++++++++++++++ 2 files changed, 31 insertions(+), 1 deletion(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/hadoop/blob/66824b39/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/FSNamesystem.java ---------------------------------------------------------------------- diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/FSNamesystem.java b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/FSNamesystem.java index 54b9625..19232f1 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/FSNamesystem.java +++ b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/FSNamesystem.java @@ -115,6 +115,7 @@ import java.io.PrintWriter; import java.io.StringWriter; import java.lang.management.ManagementFactory; import java.net.InetAddress; +import java.net.InetSocketAddress; import java.net.URI; import java.util.ArrayList; import java.util.Arrays; @@ -541,6 +542,8 @@ public class FSNamesystem implements Namesystem, FSNamesystemMBean, private INodeAttributeProvider inodeAttributeProvider; + private String nameNodeHostName = null; + /** * Notify that loading of this FSDirectory is complete, and * it is imageLoaded for use @@ -1099,6 +1102,9 @@ public class FSNamesystem implements Namesystem, FSNamesystemMBean, dir.setINodeAttributeProvider(inodeAttributeProvider); } snapshotManager.registerMXBean(); + InetSocketAddress serviceAddress = NameNode.getServiceAddress(conf, true); + this.nameNodeHostName = (serviceAddress != null) ? + serviceAddress.getHostName() : ""; } /** @@ -1370,7 +1376,7 @@ public class FSNamesystem implements Namesystem, FSNamesystemMBean, private SafeModeException newSafemodeException(String errorMsg) { return new SafeModeException(errorMsg + ". Name node is in safe " + - "mode.\n" + safeMode.getTurnOffTip()); + "mode.\n" + safeMode.getTurnOffTip() + " NamenodeHostName:" + nameNodeHostName); } boolean isPermissionEnabled() { http://git-wip-us.apache.org/repos/asf/hadoop/blob/66824b39/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestSafeMode.java ---------------------------------------------------------------------- diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestSafeMode.java b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestSafeMode.java index d5d576d..d91f3eb 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestSafeMode.java +++ b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestSafeMode.java @@ -304,6 +304,30 @@ public class TestSafeMode { } } + @Test + public void testSafeModeExceptionText() throws Exception { + final Path file1 = new Path("/file1"); + DFSTestUtil.createFile(fs, file1, 1024, (short)1, 0); + assertTrue("Could not enter SM", + dfs.setSafeMode(SafeModeAction.SAFEMODE_ENTER)); + try { + FSRun fsRun = new FSRun() { + @Override + public void run(FileSystem fileSystem) throws IOException { + ((DistributedFileSystem)fileSystem).setQuota(file1, 1, 1); + } + }; + fsRun.run(fs); + fail("Should not succeed with no exceptions!"); + } catch (RemoteException re) { + assertEquals(SafeModeException.class.getName(), re.getClassName()); + GenericTestUtils.assertExceptionContains( + NameNode.getServiceAddress(conf, true).getHostName(), re); + } catch (IOException ioe) { + fail("Encountered exception" + " " + StringUtils.stringifyException(ioe)); + } + } + /** * Run various fs operations while the NN is in safe mode, * assert that they are either allowed or fail as expected. --------------------------------------------------------------------- To unsubscribe, e-mail: common-commits-unsubscr...@hadoop.apache.org For additional commands, e-mail: common-commits-h...@hadoop.apache.org