From e6e31fbbba1f06c2e7caf0b0d1abbe1a20acaf91 Mon Sep 17 00:00:00 2001 From: Kihwal Lee Date: Mon, 15 Sep 2014 16:30:22 -0500 Subject: [PATCH] HDFS-7059. HAadmin transtionToActive with forceActive option can show confusing message. Contributed by Rushabh Shah. (cherry picked from commit 2f847b3357448184aaec935052f34d116ad3a42c) --- .../java/org/apache/hadoop/ha/HAAdmin.java | 6 ++++-- hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt | 3 +++ .../hdfs/tools/TestDFSHAAdminMiniCluster.java | 20 ------------------- 3 files changed, 7 insertions(+), 22 deletions(-) diff --git a/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/ha/HAAdmin.java b/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/ha/HAAdmin.java index dfa03e896e1..bd6366c76cc 100644 --- a/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/ha/HAAdmin.java +++ b/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/ha/HAAdmin.java @@ -143,8 +143,10 @@ public abstract class HAAdmin extends Configured implements Tool { } /* returns true if other target node is active or some exception occurred and forceActive was not set */ - if(isOtherTargetNodeActive(argv[0], cmd.hasOption(FORCEACTIVE))) { - return -1; + if(!cmd.hasOption(FORCEACTIVE)) { + if(isOtherTargetNodeActive(argv[0], cmd.hasOption(FORCEACTIVE))) { + return -1; + } } HAServiceTarget target = resolveTarget(argv[0]); if (!checkManualStateManagementOK(target)) { diff --git a/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt b/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt index 9afe5246c34..080f3b1df2a 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt +++ b/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt @@ -200,6 +200,9 @@ Release 2.6.0 - UNRELEASED HDFS-7061. Add test to verify encryption zone creation after NameNode restart without saving namespace. (Stephen Chu via wang) + HDFS-7059. HAadmin transtionToActive with forceActive option can show + confusing message. + OPTIMIZATIONS HDFS-6690. Deduplicate xattr names in memory. (wang) diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/tools/TestDFSHAAdminMiniCluster.java b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/tools/TestDFSHAAdminMiniCluster.java index 288bcd0b002..ee1c1845b30 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/tools/TestDFSHAAdminMiniCluster.java +++ b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/tools/TestDFSHAAdminMiniCluster.java @@ -232,26 +232,6 @@ public class TestDFSHAAdminMiniCluster { assertFalse("Both namenodes cannot be active", nn1.isActiveState() && nn2.isActiveState()); - /* This test case doesn't allow nn2 to transition to Active even with - forceActive switch since nn1 is already active */ - if(nn1.getState() != null && !nn1.getState(). - equals(HAServiceState.STANDBY.name()) ) { - cluster.transitionToStandby(0); - } - if(nn2.getState() != null && !nn2.getState(). - equals(HAServiceState.STANDBY.name()) ) { - cluster.transitionToStandby(1); - } - //Making sure both the namenode are in standby state - assertTrue(nn1.isStandbyState()); - assertTrue(nn2.isStandbyState()); - - runTool("-transitionToActive", "nn1"); - runTool("-transitionToActive", "nn2","--forceactive"); - - assertFalse("Both namenodes cannot be active even though with forceActive", - nn1.isActiveState() && nn2.isActiveState()); - /* In this test case, we have deliberately shut down nn1 and this will cause HAAAdmin#isOtherTargetNodeActive to throw an Exception and transitionToActive for nn2 with forceActive switch will succeed