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 dfa03e896e..bd6366c76c 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 @@ private int transitionToActive(final CommandLine cmd) } /* 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 209c7c1ed3..f596265f4e 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt +++ b/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt @@ -458,6 +458,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 288bcd0b00..ee1c1845b3 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 void testTransitionToActiveWhenOtherNamenodeisActive() 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