From common-commits-return-96310-archive-asf-public=cust-asf.ponee.io@hadoop.apache.org Sun Sep 1 07:23:40 2019 Return-Path: X-Original-To: archive-asf-public@cust-asf.ponee.io Delivered-To: archive-asf-public@cust-asf.ponee.io Received: from mail.apache.org (hermes.apache.org [207.244.88.153]) by mx-eu-01.ponee.io (Postfix) with SMTP id E1777180668 for ; Sun, 1 Sep 2019 09:23:39 +0200 (CEST) Received: (qmail 81878 invoked by uid 500); 1 Sep 2019 07:23:39 -0000 Mailing-List: contact common-commits-help@hadoop.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Delivered-To: mailing list common-commits@hadoop.apache.org Received: (qmail 81869 invoked by uid 99); 1 Sep 2019 07:23:39 -0000 Received: from ec2-52-202-80-70.compute-1.amazonaws.com (HELO gitbox.apache.org) (52.202.80.70) by apache.org (qpsmtpd/0.29) with ESMTP; Sun, 01 Sep 2019 07:23:39 +0000 Received: by gitbox.apache.org (ASF Mail Server at gitbox.apache.org, from userid 33) id 744B986148; Sun, 1 Sep 2019 07:23:38 +0000 (UTC) Date: Sun, 01 Sep 2019 07:23:38 +0000 To: "common-commits@hadoop.apache.org" Subject: [hadoop] branch trunk updated: HDFS-14711. RBF: RBFMetrics throws NullPointerException if stateStore disabled. Contributed by Chen Zhang. MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit Message-ID: <156732261796.25093.7897300787110593198@gitbox.apache.org> From: ayushsaxena@apache.org X-Git-Host: gitbox.apache.org X-Git-Repo: hadoop X-Git-Refname: refs/heads/trunk X-Git-Reftype: branch X-Git-Oldrev: fef65b4c2bcd1ea452f3a66eda91e58881b64427 X-Git-Newrev: 18d74fe41c0982dc1540367805b0c3d0d4fc29d3 X-Git-Rev: 18d74fe41c0982dc1540367805b0c3d0d4fc29d3 X-Git-NotificationType: ref_changed_plus_diff X-Git-Multimail-Version: 1.5.dev Auto-Submitted: auto-generated This is an automated email from the ASF dual-hosted git repository. ayushsaxena pushed a commit to branch trunk in repository https://gitbox.apache.org/repos/asf/hadoop.git The following commit(s) were added to refs/heads/trunk by this push: new 18d74fe HDFS-14711. RBF: RBFMetrics throws NullPointerException if stateStore disabled. Contributed by Chen Zhang. 18d74fe is described below commit 18d74fe41c0982dc1540367805b0c3d0d4fc29d3 Author: Ayush Saxena AuthorDate: Sun Sep 1 12:41:17 2019 +0530 HDFS-14711. RBF: RBFMetrics throws NullPointerException if stateStore disabled. Contributed by Chen Zhang. --- .../hdfs/server/federation/metrics/RBFMetrics.java | 25 +++++++++++++++++++++- .../server/federation/router/TestRouterRpc.java | 22 +++++++++++++++++++ 2 files changed, 46 insertions(+), 1 deletion(-) diff --git a/hadoop-hdfs-project/hadoop-hdfs-rbf/src/main/java/org/apache/hadoop/hdfs/server/federation/metrics/RBFMetrics.java b/hadoop-hdfs-project/hadoop-hdfs-rbf/src/main/java/org/apache/hadoop/hdfs/server/federation/metrics/RBFMetrics.java index 4b33f80..86599c7 100644 --- a/hadoop-hdfs-project/hadoop-hdfs-rbf/src/main/java/org/apache/hadoop/hdfs/server/federation/metrics/RBFMetrics.java +++ b/hadoop-hdfs-project/hadoop-hdfs-rbf/src/main/java/org/apache/hadoop/hdfs/server/federation/metrics/RBFMetrics.java @@ -31,6 +31,7 @@ import java.util.Collection; import java.util.Collections; import java.util.Date; import java.util.HashMap; +import java.util.HashSet; import java.util.LinkedHashMap; import java.util.LinkedHashSet; import java.util.LinkedList; @@ -183,6 +184,10 @@ public class RBFMetrics implements RouterMBean, FederationMBean { @Override public String getNamenodes() { final Map> info = new LinkedHashMap<>(); + if (membershipStore == null) { + return "{}"; + } + try { // Get the values from the store GetNamenodeRegistrationsRequest request = @@ -252,6 +257,9 @@ public class RBFMetrics implements RouterMBean, FederationMBean { @Override public String getMountTable() { final List> info = new LinkedList<>(); + if (mountTableStore == null) { + return "[]"; + } try { // Get all the mount points in order @@ -302,6 +310,9 @@ public class RBFMetrics implements RouterMBean, FederationMBean { @Override public String getRouters() { final Map> info = new LinkedHashMap<>(); + if (routerStore == null) { + return "{}"; + } try { // Get all the routers in order GetRouterRegistrationsRequest request = @@ -391,6 +402,9 @@ public class RBFMetrics implements RouterMBean, FederationMBean { @Override public int getNumNamenodes() { + if (membershipStore == null) { + return 0; + } try { GetNamenodeRegistrationsRequest request = GetNamenodeRegistrationsRequest.newInstance(); @@ -406,6 +420,9 @@ public class RBFMetrics implements RouterMBean, FederationMBean { @Override public int getNumExpiredNamenodes() { + if (membershipStore == null) { + return 0; + } try { GetNamenodeRegistrationsRequest request = GetNamenodeRegistrationsRequest.newInstance(); @@ -670,6 +687,9 @@ public class RBFMetrics implements RouterMBean, FederationMBean { */ private Collection getNamespaceInfo( Function f) throws IOException { + if (membershipStore == null) { + return new HashSet<>(); + } GetNamespaceInfoRequest request = GetNamespaceInfoRequest.newInstance(); GetNamespaceInfoResponse response = membershipStore.getNamespaceInfo(request); @@ -719,8 +739,11 @@ public class RBFMetrics implements RouterMBean, FederationMBean { */ private List getActiveNamenodeRegistrations() throws IOException { - List resultList = new ArrayList<>(); + if (membershipStore == null) { + return resultList; + } + GetNamespaceInfoRequest request = GetNamespaceInfoRequest.newInstance(); GetNamespaceInfoResponse response = membershipStore.getNamespaceInfo(request); diff --git a/hadoop-hdfs-project/hadoop-hdfs-rbf/src/test/java/org/apache/hadoop/hdfs/server/federation/router/TestRouterRpc.java b/hadoop-hdfs-project/hadoop-hdfs-rbf/src/test/java/org/apache/hadoop/hdfs/server/federation/router/TestRouterRpc.java index 8ec87cb..3767d93 100644 --- a/hadoop-hdfs-project/hadoop-hdfs-rbf/src/test/java/org/apache/hadoop/hdfs/server/federation/router/TestRouterRpc.java +++ b/hadoop-hdfs-project/hadoop-hdfs-rbf/src/test/java/org/apache/hadoop/hdfs/server/federation/router/TestRouterRpc.java @@ -101,6 +101,7 @@ import org.apache.hadoop.hdfs.server.federation.MiniRouterDFSCluster.RouterConte import org.apache.hadoop.hdfs.server.federation.MockResolver; import org.apache.hadoop.hdfs.server.federation.RouterConfigBuilder; import org.apache.hadoop.hdfs.server.federation.metrics.NamenodeBeanMetrics; +import org.apache.hadoop.hdfs.server.federation.metrics.RBFMetrics; import org.apache.hadoop.hdfs.server.federation.resolver.FileSubclusterResolver; import org.apache.hadoop.hdfs.server.namenode.FSDirectory; import org.apache.hadoop.hdfs.server.namenode.FSNamesystem; @@ -1619,6 +1620,27 @@ public class TestRouterRpc { } @Test + public void testRBFMetricsMethodsRelayOnStateStore() { + assertNull(router.getRouter().getStateStore()); + + RBFMetrics metrics = router.getRouter().getMetrics(); + assertEquals("{}", metrics.getNamenodes()); + assertEquals("[]", metrics.getMountTable()); + assertEquals("{}", metrics.getRouters()); + assertEquals(0, metrics.getNumNamenodes()); + assertEquals(0, metrics.getNumExpiredNamenodes()); + + // These 2 methods relays on {@link RBFMetrics#getNamespaceInfo()} + assertEquals("[]", metrics.getClusterId()); + assertEquals("[]", metrics.getBlockPoolId()); + + // These methods relays on + // {@link RBFMetrics#getActiveNamenodeRegistration()} + assertEquals("{}", metrics.getNameservices()); + assertEquals(0, metrics.getNumLiveNodes()); + } + + @Test public void testCacheAdmin() throws Exception { DistributedFileSystem routerDFS = (DistributedFileSystem) routerFS; // Verify cache directive commands. --------------------------------------------------------------------- To unsubscribe, e-mail: common-commits-unsubscribe@hadoop.apache.org For additional commands, e-mail: common-commits-help@hadoop.apache.org