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 <[email protected]>
Authored: Thu Mar 16 11:07:13 2017 -0500
Committer: Kihwal Lee <[email protected]>
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: [email protected]
For additional commands, e-mail: [email protected]