You are viewing a plain text version of this content. The canonical link for it is here.
Posted to common-issues@hadoop.apache.org by GitBox <gi...@apache.org> on 2021/09/01 16:26:10 UTC
[GitHub] [hadoop] goiri commented on a change in pull request #3252: YARN-10829. Follow up: Adding null checks before merging ResourceUsage Report
goiri commented on a change in pull request #3252:
URL: https://github.com/apache/hadoop/pull/3252#discussion_r700373788
##########
File path: hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-router/src/main/java/org/apache/hadoop/yarn/server/router/clientrm/RouterYarnClientUtils.java
##########
@@ -126,50 +126,55 @@ private static ApplicationReport mergeUAMWithUAM(ApplicationReport uam1,
}
private static void mergeAMWithUAM(ApplicationReport am,
- ApplicationReport uam){
+ ApplicationReport uam){
ApplicationResourceUsageReport amResourceReport =
- am.getApplicationResourceUsageReport();
+ am.getApplicationResourceUsageReport();
Review comment:
Can you avoid all this whitespace changes?
This one in particular goes against the Hadoop style.
##########
File path: hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-router/src/test/java/org/apache/hadoop/yarn/server/router/clientrm/TestRouterYarnClientUtils.java
##########
@@ -124,6 +124,49 @@ public void testMergeUnmanagedApplications() {
Assert.assertTrue(result.getApplicationList().isEmpty());
}
+ /**
+ * This test validates the correctness of
+ * RouterYarnClientUtils#mergeApplications when
+ * ApplicationResourceUsageReport might be null.
+ */
+ @Test
+ public void testMergeApplicationsNullResourceUsage() {
+ ApplicationId appId = ApplicationId.newInstance(1234, 1);
+ ApplicationReport appReport = ApplicationReport.newInstance(
+ appId, ApplicationAttemptId.newInstance(appId, 1),
+ "user", "queue", "app1", "host",
+ 124, null, YarnApplicationState.RUNNING,
+ "diagnostics", "url", 0, 0,
+ 0, FinalApplicationStatus.SUCCEEDED, null, "N/A",
+ 0.53789f, "YARN", null, null, false, null, null, null);
+
+ ApplicationReport uamAppReport = ApplicationReport.newInstance(
+ appId, ApplicationAttemptId.newInstance(appId, 1),
+ "user", "queue", "app1", "host",
+ 124, null, YarnApplicationState.RUNNING,
+ "diagnostics", "url", 0, 0,
+ 0, FinalApplicationStatus.SUCCEEDED, null, "N/A",
+ 0.53789f, "YARN", null, null, true, null, null, null);
+
+
+ ArrayList<GetApplicationsResponse> responses = new ArrayList<>();
+ List<ApplicationReport> applications = new ArrayList<>();
+ applications.add(appReport);
+ applications.add(uamAppReport);
+ responses.add(GetApplicationsResponse.newInstance(applications));
+
+ GetApplicationsResponse result = RouterYarnClientUtils.
+ mergeApplications(responses, false);
+ Assert.assertNotNull(result);
+ Assert.assertEquals(1, result.getApplicationList().size());
+
+ String appName = result.getApplicationList().get(0).getName();
+
+ // Check that no Unmanaged applications are added to the result
+ Assert.assertEquals(false,
Review comment:
assertFalse
##########
File path: hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-router/src/test/java/org/apache/hadoop/yarn/server/router/clientrm/TestRouterYarnClientUtils.java
##########
@@ -124,6 +124,49 @@ public void testMergeUnmanagedApplications() {
Assert.assertTrue(result.getApplicationList().isEmpty());
}
+ /**
+ * This test validates the correctness of
+ * RouterYarnClientUtils#mergeApplications when
+ * ApplicationResourceUsageReport might be null.
+ */
+ @Test
+ public void testMergeApplicationsNullResourceUsage() {
+ ApplicationId appId = ApplicationId.newInstance(1234, 1);
+ ApplicationReport appReport = ApplicationReport.newInstance(
+ appId, ApplicationAttemptId.newInstance(appId, 1),
+ "user", "queue", "app1", "host",
+ 124, null, YarnApplicationState.RUNNING,
+ "diagnostics", "url", 0, 0,
+ 0, FinalApplicationStatus.SUCCEEDED, null, "N/A",
+ 0.53789f, "YARN", null, null, false, null, null, null);
+
+ ApplicationReport uamAppReport = ApplicationReport.newInstance(
+ appId, ApplicationAttemptId.newInstance(appId, 1),
+ "user", "queue", "app1", "host",
+ 124, null, YarnApplicationState.RUNNING,
+ "diagnostics", "url", 0, 0,
+ 0, FinalApplicationStatus.SUCCEEDED, null, "N/A",
+ 0.53789f, "YARN", null, null, true, null, null, null);
+
+
+ ArrayList<GetApplicationsResponse> responses = new ArrayList<>();
+ List<ApplicationReport> applications = new ArrayList<>();
+ applications.add(appReport);
+ applications.add(uamAppReport);
+ responses.add(GetApplicationsResponse.newInstance(applications));
+
+ GetApplicationsResponse result = RouterYarnClientUtils.
+ mergeApplications(responses, false);
Review comment:
Spaces
##########
File path: hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-router/src/main/java/org/apache/hadoop/yarn/server/router/clientrm/RouterYarnClientUtils.java
##########
@@ -126,50 +126,55 @@ private static ApplicationReport mergeUAMWithUAM(ApplicationReport uam1,
}
private static void mergeAMWithUAM(ApplicationReport am,
- ApplicationReport uam){
+ ApplicationReport uam){
ApplicationResourceUsageReport amResourceReport =
- am.getApplicationResourceUsageReport();
+ am.getApplicationResourceUsageReport();
ApplicationResourceUsageReport uamResourceReport =
- uam.getApplicationResourceUsageReport();
+ uam.getApplicationResourceUsageReport();
- amResourceReport.setNumUsedContainers(
- amResourceReport.getNumUsedContainers() +
- uamResourceReport.getNumUsedContainers());
+ if (amResourceReport == null) {
+ am.setApplicationResourceUsageReport(uamResourceReport);
+ } else if (uamResourceReport != null) {
- amResourceReport.setNumReservedContainers(
- amResourceReport.getNumReservedContainers() +
- uamResourceReport.getNumReservedContainers());
+ amResourceReport.setNumUsedContainers(
+ amResourceReport.getNumUsedContainers() +
Review comment:
Fix indentation as it was in the old one.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: common-issues-unsubscribe@hadoop.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: common-issues-unsubscribe@hadoop.apache.org
For additional commands, e-mail: common-issues-help@hadoop.apache.org