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 ta...@apache.org on 2021/04/01 04:52:52 UTC

[hadoop] branch branch-3.2 updated: Revert "HDFS-15900. RBF: empty blockpool id on dfsrouter caused by UNAVAILABLE NameNode. (#2787)"

This is an automated email from the ASF dual-hosted git repository.

tasanuma pushed a commit to branch branch-3.2
in repository https://gitbox.apache.org/repos/asf/hadoop.git


The following commit(s) were added to refs/heads/branch-3.2 by this push:
     new 93517ba  Revert "HDFS-15900. RBF: empty blockpool id on dfsrouter caused by UNAVAILABLE NameNode. (#2787)"
93517ba is described below

commit 93517ba9bca68aa987ac1ad5ce0923444eb11c87
Author: Takanobu Asanuma <ta...@apache.org>
AuthorDate: Thu Apr 1 13:51:08 2021 +0900

    Revert "HDFS-15900. RBF: empty blockpool id on dfsrouter caused by UNAVAILABLE NameNode. (#2787)"
    
    This reverts commit 510a43cbe4f5221c852d71ae3f7e7975b9497e86.
---
 .../resolver/FederationNamespaceInfo.java          | 46 +-----------------
 .../federation/store/impl/MembershipStoreImpl.java | 15 +++---
 .../resolver/TestFederationNamespaceInfo.java      | 39 ----------------
 .../store/TestStateStoreMembershipState.java       | 54 ----------------------
 4 files changed, 7 insertions(+), 147 deletions(-)

diff --git a/hadoop-hdfs-project/hadoop-hdfs-rbf/src/main/java/org/apache/hadoop/hdfs/server/federation/resolver/FederationNamespaceInfo.java b/hadoop-hdfs-project/hadoop-hdfs-rbf/src/main/java/org/apache/hadoop/hdfs/server/federation/resolver/FederationNamespaceInfo.java
index 1ef159c..33edd30 100644
--- a/hadoop-hdfs-project/hadoop-hdfs-rbf/src/main/java/org/apache/hadoop/hdfs/server/federation/resolver/FederationNamespaceInfo.java
+++ b/hadoop-hdfs-project/hadoop-hdfs-rbf/src/main/java/org/apache/hadoop/hdfs/server/federation/resolver/FederationNamespaceInfo.java
@@ -17,9 +17,6 @@
  */
 package org.apache.hadoop.hdfs.server.federation.resolver;
 
-import org.apache.commons.lang3.builder.CompareToBuilder;
-import org.apache.commons.lang3.builder.EqualsBuilder;
-import org.apache.commons.lang3.builder.HashCodeBuilder;
 import org.apache.hadoop.hdfs.server.federation.router.RemoteLocationContext;
 
 /**
@@ -78,45 +75,4 @@ public class FederationNamespaceInfo extends RemoteLocationContext {
   public String toString() {
     return this.nameserviceId + "->" + this.blockPoolId + ":" + this.clusterId;
   }
-
-  @Override
-  public boolean equals(Object obj) {
-    if (obj == null) {
-      return false;
-    }
-    if (obj == this) {
-      return true;
-    }
-    if (obj.getClass() != getClass()) {
-      return false;
-    }
-    FederationNamespaceInfo other = (FederationNamespaceInfo) obj;
-    return new EqualsBuilder()
-        .append(nameserviceId, other.nameserviceId)
-        .append(clusterId, other.clusterId)
-        .append(blockPoolId, other.blockPoolId)
-        .isEquals();
-  }
-
-  @Override
-  public int hashCode() {
-    return new HashCodeBuilder(17, 31)
-        .append(nameserviceId)
-        .append(clusterId)
-        .append(blockPoolId)
-        .toHashCode();
-  }
-
-  @Override
-  public int compareTo(RemoteLocationContext info) {
-    if (info instanceof FederationNamespaceInfo) {
-      FederationNamespaceInfo other = (FederationNamespaceInfo) info;
-      return new CompareToBuilder()
-          .append(nameserviceId, other.nameserviceId)
-          .append(clusterId, other.clusterId)
-          .append(blockPoolId, other.blockPoolId)
-          .toComparison();
-    }
-    return super.compareTo(info);
-  }
-}
+}
\ No newline at end of file
diff --git a/hadoop-hdfs-project/hadoop-hdfs-rbf/src/main/java/org/apache/hadoop/hdfs/server/federation/store/impl/MembershipStoreImpl.java b/hadoop-hdfs-project/hadoop-hdfs-rbf/src/main/java/org/apache/hadoop/hdfs/server/federation/store/impl/MembershipStoreImpl.java
index a63a0f3..57b7b61 100644
--- a/hadoop-hdfs-project/hadoop-hdfs-rbf/src/main/java/org/apache/hadoop/hdfs/server/federation/store/impl/MembershipStoreImpl.java
+++ b/hadoop-hdfs-project/hadoop-hdfs-rbf/src/main/java/org/apache/hadoop/hdfs/server/federation/store/impl/MembershipStoreImpl.java
@@ -213,15 +213,12 @@ public class MembershipStoreImpl
             nnRegistrations.put(nnId, nnRegistration);
           }
           nnRegistration.add(membership);
-          if (membership.getState()
-              != FederationNamenodeServiceState.UNAVAILABLE) {
-            String bpId = membership.getBlockPoolId();
-            String cId = membership.getClusterId();
-            String nsId = membership.getNameserviceId();
-            FederationNamespaceInfo nsInfo =
-                new FederationNamespaceInfo(bpId, cId, nsId);
-            this.activeNamespaces.add(nsInfo);
-          }
+          String bpId = membership.getBlockPoolId();
+          String cId = membership.getClusterId();
+          String nsId = membership.getNameserviceId();
+          FederationNamespaceInfo nsInfo =
+              new FederationNamespaceInfo(bpId, cId, nsId);
+          this.activeNamespaces.add(nsInfo);
         }
       }
 
diff --git a/hadoop-hdfs-project/hadoop-hdfs-rbf/src/test/java/org/apache/hadoop/hdfs/server/federation/resolver/TestFederationNamespaceInfo.java b/hadoop-hdfs-project/hadoop-hdfs-rbf/src/test/java/org/apache/hadoop/hdfs/server/federation/resolver/TestFederationNamespaceInfo.java
deleted file mode 100644
index 7268123..0000000
--- a/hadoop-hdfs-project/hadoop-hdfs-rbf/src/test/java/org/apache/hadoop/hdfs/server/federation/resolver/TestFederationNamespaceInfo.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.hadoop.hdfs.server.federation.resolver;
-
-import org.junit.Test;
-
-import java.util.Set;
-import java.util.TreeSet;
-
-import static org.assertj.core.api.Assertions.assertThat;
-
-public class TestFederationNamespaceInfo {
-  /**
-   * Regression test for HDFS-15900.
-   */
-  @Test
-  public void testHashCode() {
-    Set<FederationNamespaceInfo> set = new TreeSet<>();
-    // set an empty bpId first
-    set.add(new FederationNamespaceInfo("", "nn1", "ns1"));
-    set.add(new FederationNamespaceInfo("bp1", "nn2", "ns1"));
-    assertThat(set).hasSize(2);
-  }
-}
diff --git a/hadoop-hdfs-project/hadoop-hdfs-rbf/src/test/java/org/apache/hadoop/hdfs/server/federation/store/TestStateStoreMembershipState.java b/hadoop-hdfs-project/hadoop-hdfs-rbf/src/test/java/org/apache/hadoop/hdfs/server/federation/store/TestStateStoreMembershipState.java
index beb99d5..dd349da 100644
--- a/hadoop-hdfs-project/hadoop-hdfs-rbf/src/test/java/org/apache/hadoop/hdfs/server/federation/store/TestStateStoreMembershipState.java
+++ b/hadoop-hdfs-project/hadoop-hdfs-rbf/src/test/java/org/apache/hadoop/hdfs/server/federation/store/TestStateStoreMembershipState.java
@@ -33,16 +33,12 @@ import static org.junit.Assert.assertTrue;
 import java.io.IOException;
 import java.util.ArrayList;
 import java.util.List;
-import java.util.Set;
 import java.util.concurrent.TimeUnit;
 
 import org.apache.hadoop.hdfs.server.federation.resolver.FederationNamenodeServiceState;
-import org.apache.hadoop.hdfs.server.federation.resolver.FederationNamespaceInfo;
 import org.apache.hadoop.hdfs.server.federation.router.RBFConfigKeys;
 import org.apache.hadoop.hdfs.server.federation.store.protocol.GetNamenodeRegistrationsRequest;
 import org.apache.hadoop.hdfs.server.federation.store.protocol.GetNamenodeRegistrationsResponse;
-import org.apache.hadoop.hdfs.server.federation.store.protocol.GetNamespaceInfoRequest;
-import org.apache.hadoop.hdfs.server.federation.store.protocol.GetNamespaceInfoResponse;
 import org.apache.hadoop.hdfs.server.federation.store.protocol.NamenodeHeartbeatRequest;
 import org.apache.hadoop.hdfs.server.federation.store.protocol.NamenodeHeartbeatResponse;
 import org.apache.hadoop.hdfs.server.federation.store.protocol.UpdateNamenodeRegistrationRequest;
@@ -417,56 +413,6 @@ public class TestStateStoreMembershipState extends TestStateStoreBase {
     assertEquals(FederationNamenodeServiceState.ACTIVE, quorumEntry.getState());
   }
 
-  @Test
-  public void testNamespaceInfoWithUnavailableNameNodeRegistration()
-      throws IOException {
-    // Populate the state store with one ACTIVE NameNode entry
-    // and one UNAVAILABLE NameNode entry
-    // 1) ns0:nn0 - ACTIVE
-    // 2) ns0:nn1 - UNAVAILABLE
-    List<MembershipState> registrationList = new ArrayList<>();
-    String router = ROUTERS[0];
-    String ns = NAMESERVICES[0];
-    String rpcAddress = "testrpcaddress";
-    String serviceAddress = "testserviceaddress";
-    String lifelineAddress = "testlifelineaddress";
-    String blockPoolId = "testblockpool";
-    String clusterId = "testcluster";
-    String webScheme = "http";
-    String webAddress = "testwebaddress";
-    boolean safemode = false;
-
-    MembershipState record = MembershipState.newInstance(
-        router, ns, NAMENODES[0], clusterId, blockPoolId,
-        rpcAddress, serviceAddress, lifelineAddress, webScheme,
-        webAddress, FederationNamenodeServiceState.ACTIVE, safemode);
-    registrationList.add(record);
-
-    // Set empty clusterId and blockPoolId for UNAVAILABLE NameNode
-    record = MembershipState.newInstance(
-        router, ns, NAMENODES[1], "", "",
-        rpcAddress, serviceAddress, lifelineAddress, webScheme,
-        webAddress, FederationNamenodeServiceState.UNAVAILABLE, safemode);
-    registrationList.add(record);
-
-    registerAndLoadRegistrations(registrationList);
-
-    GetNamespaceInfoRequest request = GetNamespaceInfoRequest.newInstance();
-    GetNamespaceInfoResponse response
-        = membershipStore.getNamespaceInfo(request);
-    Set<FederationNamespaceInfo> namespaces = response.getNamespaceInfo();
-
-    // Verify only one namespace is registered
-    assertEquals(1, namespaces.size());
-
-    // Verify the registered namespace has a valid pair of clusterId
-    // and blockPoolId derived from ACTIVE NameNode
-    FederationNamespaceInfo namespace = namespaces.iterator().next();
-    assertEquals(ns, namespace.getNameserviceId());
-    assertEquals(clusterId, namespace.getClusterId());
-    assertEquals(blockPoolId, namespace.getBlockPoolId());
-  }
-
   /**
    * Get a single namenode membership record from the store.
    *

---------------------------------------------------------------------
To unsubscribe, e-mail: common-commits-unsubscribe@hadoop.apache.org
For additional commands, e-mail: common-commits-help@hadoop.apache.org