Repository: hadoop Updated Branches: refs/heads/trunk 284aca8b6 -> 7093afd87
YARN-8829. Cluster metrics can fail with IndexOutOfBoundsException. Contributed by Akshay Agarwal. Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/7093afd8 Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/7093afd8 Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/7093afd8 Branch: refs/heads/trunk Commit: 7093afd8746cc120875eb27053bad692482d2aab Parents: 284aca8 Author: bibinchundatt <[email protected]> Authored: Fri Sep 28 12:32:37 2018 +0530 Committer: bibinchundatt <[email protected]> Committed: Fri Sep 28 12:35:33 2018 +0530 ---------------------------------------------------------------------- .../server/router/clientrm/FederationClientInterceptor.java | 2 +- .../router/clientrm/TestFederationClientInterceptor.java | 9 +++++++++ 2 files changed, 10 insertions(+), 1 deletion(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/hadoop/blob/7093afd8/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-router/src/main/java/org/apache/hadoop/yarn/server/router/clientrm/FederationClientInterceptor.java ---------------------------------------------------------------------- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-router/src/main/java/org/apache/hadoop/yarn/server/router/clientrm/FederationClientInterceptor.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-router/src/main/java/org/apache/hadoop/yarn/server/router/clientrm/FederationClientInterceptor.java index 3d9b394..797b1aa 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-router/src/main/java/org/apache/hadoop/yarn/server/router/clientrm/FederationClientInterceptor.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-router/src/main/java/org/apache/hadoop/yarn/server/router/clientrm/FederationClientInterceptor.java @@ -654,7 +654,7 @@ public class FederationClientInterceptor exceptions.put(subClusterId, ioe); } } - if (results.isEmpty()) { + if (results.isEmpty() && !clusterIds.isEmpty()) { SubClusterId subClusterId = clusterIds.get(0); IOException ioe = exceptions.get(subClusterId); if (ioe != null) { http://git-wip-us.apache.org/repos/asf/hadoop/blob/7093afd8/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-router/src/test/java/org/apache/hadoop/yarn/server/router/clientrm/TestFederationClientInterceptor.java ---------------------------------------------------------------------- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-router/src/test/java/org/apache/hadoop/yarn/server/router/clientrm/TestFederationClientInterceptor.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-router/src/test/java/org/apache/hadoop/yarn/server/router/clientrm/TestFederationClientInterceptor.java index 8f19ecc..c49fe4e 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-router/src/test/java/org/apache/hadoop/yarn/server/router/clientrm/TestFederationClientInterceptor.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-router/src/test/java/org/apache/hadoop/yarn/server/router/clientrm/TestFederationClientInterceptor.java @@ -22,6 +22,7 @@ import java.io.IOException; import java.util.ArrayList; import java.util.List; +import java.util.Map; import org.apache.hadoop.yarn.api.protocolrecords.GetApplicationReportRequest; import org.apache.hadoop.yarn.api.protocolrecords.GetApplicationReportResponse; import org.apache.hadoop.yarn.api.protocolrecords.GetClusterMetricsRequest; @@ -412,5 +413,13 @@ public class TestFederationClientInterceptor extends BaseRouterClientRMTest { interceptor.getClusterMetrics(GetClusterMetricsRequest.newInstance()); Assert.assertEquals(subClusters.size(), response.getClusterMetrics().getNumNodeManagers()); + + ClientMethod remoteMethod = new ClientMethod("getClusterMetrics", + new Class[] {GetClusterMetricsRequest.class}, + new Object[] {GetClusterMetricsRequest.newInstance()}); + Map<SubClusterId, GetClusterMetricsResponse> clusterMetrics =interceptor. + invokeConcurrent(new ArrayList<>(), remoteMethod, + GetClusterMetricsResponse.class); + Assert.assertEquals(true, clusterMetrics.isEmpty()); } } --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
