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 as...@apache.org on 2015/12/30 07:56:48 UTC
[23/27] hadoop git commit: HDFS-7553. fix the TestDFSUpgradeWithHA
due to BindException. Contributed by Xiao Chen.
HDFS-7553. fix the TestDFSUpgradeWithHA due to BindException. Contributed by Xiao Chen.
Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo
Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/99cf2ece
Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/99cf2ece
Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/99cf2ece
Branch: refs/heads/yarn-2877
Commit: 99cf2ecee9c19231dea3620c053b2d8d71812fd6
Parents: 2a59d01
Author: cnauroth <cn...@apache.org>
Authored: Tue Dec 29 10:56:59 2015 -0800
Committer: cnauroth <cn...@apache.org>
Committed: Tue Dec 29 10:56:59 2015 -0800
----------------------------------------------------------------------
hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt | 3 ++
.../hadoop/hdfs/server/namenode/NameNode.java | 16 ++++++++++
.../server/namenode/NameNodeHttpServer.java | 9 ++++++
.../org/apache/hadoop/hdfs/MiniDFSCluster.java | 33 +++++++++++---------
.../hdfs/server/namenode/TestStartup.java | 2 ++
5 files changed, 48 insertions(+), 15 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/hadoop/blob/99cf2ece/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 d5f51ff..9da92b2 100644
--- a/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt
+++ b/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt
@@ -2547,6 +2547,9 @@ Release 2.8.0 - UNRELEASED
HDFS-9458. TestBackupNode always binds to port 50070, which can cause bind
failures. (Xiao Chen via cnauroth)
+ HDFS-7553. fix the TestDFSUpgradeWithHA due to BindException.
+ (Xiao Chen via cnauroth)
+
Release 2.7.3 - UNRELEASED
INCOMPATIBLE CHANGES
http://git-wip-us.apache.org/repos/asf/hadoop/blob/99cf2ece/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/NameNode.java
----------------------------------------------------------------------
diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/NameNode.java b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/NameNode.java
index acb4069..97c8b26 100644
--- a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/NameNode.java
+++ b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/NameNode.java
@@ -1022,6 +1022,22 @@ public class NameNode implements NameNodeStatusMXBean {
}
/**
+ * @return NameNodeHttpServer, used by unit tests to ensure a full shutdown,
+ * so that no bind exception is thrown during restart.
+ */
+ @VisibleForTesting
+ public void joinHttpServer() {
+ if (httpServer != null) {
+ try {
+ httpServer.join();
+ } catch (InterruptedException e) {
+ LOG.info("Caught InterruptedException joining NameNodeHttpServer", e);
+ Thread.currentThread().interrupt();
+ }
+ }
+ }
+
+ /**
* Verify that configured directories exist, then
* Interactively confirm that formatting is desired
* for each existing directory and format them.
http://git-wip-us.apache.org/repos/asf/hadoop/blob/99cf2ece/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/NameNodeHttpServer.java
----------------------------------------------------------------------
diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/NameNodeHttpServer.java b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/NameNodeHttpServer.java
index 6bd9868..8f112bd 100644
--- a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/NameNodeHttpServer.java
+++ b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/NameNodeHttpServer.java
@@ -194,6 +194,15 @@ public class NameNodeHttpServer {
return params;
}
+ /**
+ * Joins the httpserver.
+ */
+ public void join() throws InterruptedException {
+ if (httpServer != null) {
+ httpServer.join();
+ }
+ }
+
void stop() throws Exception {
if (httpServer != null) {
httpServer.stop();
http://git-wip-us.apache.org/repos/asf/hadoop/blob/99cf2ece/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/MiniDFSCluster.java
----------------------------------------------------------------------
diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/MiniDFSCluster.java b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/MiniDFSCluster.java
index 3e25177..63561fe 100644
--- a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/MiniDFSCluster.java
+++ b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/MiniDFSCluster.java
@@ -1908,12 +1908,7 @@ public class MiniDFSCluster {
shutdownDataNodes();
for (NameNodeInfo nnInfo : namenodes.values()) {
if (nnInfo == null) continue;
- NameNode nameNode = nnInfo.nameNode;
- if (nameNode != null) {
- nameNode.stop();
- nameNode.join();
- nameNode = null;
- }
+ stopAndJoinNameNode(nnInfo.nameNode);
}
ShutdownHookManager.get().clearShutdownHooks();
if (base_dir != null) {
@@ -1953,17 +1948,25 @@ public class MiniDFSCluster {
*/
public synchronized void shutdownNameNode(int nnIndex) {
NameNodeInfo info = getNN(nnIndex);
- NameNode nn = info.nameNode;
- if (nn != null) {
- LOG.info("Shutting down the namenode");
- nn.stop();
- nn.join();
- info.nnId = null;
- info.nameNode = null;
- info.nameserviceId = null;
+ stopAndJoinNameNode(info.nameNode);
+ info.nnId = null;
+ info.nameNode = null;
+ info.nameserviceId = null;
+ }
+
+ /**
+ * Fully stop the NameNode by stop and join.
+ */
+ private void stopAndJoinNameNode(NameNode nn) {
+ if (nn == null) {
+ return;
}
+ LOG.info("Shutting down the namenode");
+ nn.stop();
+ nn.join();
+ nn.joinHttpServer();
}
-
+
/**
* Restart all namenodes.
*/
http://git-wip-us.apache.org/repos/asf/hadoop/blob/99cf2ece/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 20dda37..860a2c9 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
@@ -444,6 +444,7 @@ public class TestStartup {
nnRpc.saveNamespace(0, 0);
namenode.stop();
namenode.join();
+ namenode.joinHttpServer();
// compress image using default codec
LOG.info("Read an uncomressed image and store it compressed using default codec.");
@@ -474,6 +475,7 @@ public class TestStartup {
nnRpc.saveNamespace(0, 0);
namenode.stop();
namenode.join();
+ namenode.joinHttpServer();
}
@Test