[ 
https://issues.apache.org/jira/browse/YARN-11874?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=18030665#comment-18030665
 ] 

ASF GitHub Bot commented on YARN-11874:
---------------------------------------

Hean-Chhinling commented on code in PR #8033:
URL: https://github.com/apache/hadoop/pull/8033#discussion_r2440174526


##########
hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/dao/NodeLabelsInfo.java:
##########
@@ -48,7 +48,7 @@ public NodeLabelsInfo(List<NodeLabel> nodeLabels) {
       this.nodeLabelsInfo.add(new NodeLabelInfo(label));
     }
   }
-  
+

Review Comment:
   Nit: look like this an unintentional space. 
   Could we clean this up?



##########
hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/helper/AppInfoJsonVerifications.java:
##########
@@ -88,8 +87,8 @@ public static void verify(JSONObject info, RMApp app) throws 
JSONException {
         "clusterUsagePerc doesn't match");
     assertEquals(1, info.getInt("runningContainers"),
         "numContainers doesn't match");
-    assertNotNull(info.get("preemptedResourceSecondsMap"),
-        "preemptedResourceSecondsMap should not be null");
+    assertTrue(info.isNull("preemptedResourceSecondsMap"),
+        "preemptedResourceSecondsMap should be null, cause it is empty");

Review Comment:
   Would you mind help giving some context here? 
   I could not find the preemptedResourceSecondsMap that it should be empty



##########
hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/TestRMWebServicesApps.java:
##########
@@ -564,9 +555,9 @@ public void testAppsQueryFinalStatusNone() throws 
JSONException, Exception {
         .request(MediaType.APPLICATION_JSON).get(Response.class);
     assertEquals(MediaType.APPLICATION_JSON_TYPE + ";" + JettyUtils.UTF_8,
         response.getMediaType().toString());
-    JSONObject json = response.readEntity(JSONObject.class);
+    JSONObject json = responseToJson(response);
     assertEquals(1, json.length(), "incorrect number of elements");
-    assertEquals("", json.get("apps").toString(), "apps is not null");
+    assertEquals(new JSONObject().toString(), json.get("apps").toString(), 
"apps is not null");

Review Comment:
   What do you think of using an empty array `{}` instead of initializing an 
object `new JSONObject().toString()` just to get the empty array? 
   
   I tested it like the followings and it still pass, but please let me know 
what do you think :)
   
   `assertEquals("{}", json.get("apps").toString(), "apps is not null");`



##########
hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/federation/TestFederationRMStateStoreService.java:
##########
@@ -199,10 +190,10 @@ private void explicitFailover(MockRM rm) throws 
IOException {
     stateStore = rm.getFederationStateStoreService().getStateStoreClient();
   }
 
-  private void checkClusterMetricsInfo(String capability, int numNodes)
-      throws JAXBException {
-    ClusterMetricsInfo clusterMetricsInfo = jsonUnmarshaller.unmarshalFromJSON(
-        new StringReader(capability), ClusterMetricsInfo.class);
+  private void checkClusterMetricsInfo(String capability, int numNodes) {
+    ClusterMetricsInfo clusterMetricsInfo = fromJson(capability, 
ClusterMetricsInfo.class);
+    System.err.println(capability);
+    System.err.println(clusterMetricsInfo.getTotalNodes());

Review Comment:
   Is the System.err.println() needed for long term as well?



##########
hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/dao/NodeLabelsInfo.java:
##########
@@ -75,7 +75,7 @@ public Set<NodeLabel> getNodeLabels() {
     }
     return nodeLabels;
   }
-  
+

Review Comment:
   Nit: Here as well, unintentional space.





> ResourceManager REST api scheduler info contains @xsi.type instead of type
> --------------------------------------------------------------------------
>
>                 Key: YARN-11874
>                 URL: https://issues.apache.org/jira/browse/YARN-11874
>             Project: Hadoop YARN
>          Issue Type: Bug
>          Components: yarn
>    Affects Versions: 3.5.0
>            Reporter: Bence Kosztolnik
>            Assignee: Bence Kosztolnik
>            Priority: Major
>              Labels: pull-request-available
>
> *Problem statement:*
> The /ws/v1/cluster/scheduler returns with invalid response
> {code:java}
> {
>     "scheduler": {
>         "schedulerInfo": {
>                  "@xsi.type":"fifoScheduler",
>                  "capacity":1,
>                  ...
> {code}
> instead of this:
> {code:java}
> {
>     "scheduler": {
>         "schedulerInfo": {
>                  "type":"fifoScheduler",
>                  "capacity":1,
>                  ...
> {code}
> source: 
> https://hadoop.apache.org/docs/stable/hadoop-yarn/hadoop-yarn-site/ResourceManagerRest.html#Cluster_Scheduler_API
> *Repro:*
> 1) Modify the TestRMWebServices#verifyClusterSchedulerFifo and add the line
> {code:java}
>     assertTrue(info.has("type"),  "incorrect type of element: " + info);
> {code}
> 2) Run the testClusterSchedulerFifo test, it will fail
> *Possible root cause:*
> I think during the jersey2 upgrade when 
> *org.apache.hadoop.yarn.server.resourcemanager.webapp.JAXBContextResolver* 
> was modified with replacement of *com.sun.jersey.api.json.JSONJAXBContext* to 
> *org.glassfish.jersey.jettison.JettisonJaxbContext* we changed the 
> behaviourment how we convert the XML models to JSON in the REST API.
> https://github.com/apache/hadoop/blob/06d36f5a6a1a01d159bef75b22ca2845e8c90bad/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/JAXBContextResolver.java#L158
> *Other failures:*
> When we generate a UI list with only one element it will be converted to json 
> object instead of list with single element.
> For example the doc says
> {noformat}
> queues        array of queues(JSON)/zero or more queue objects(XML)
> {noformat}
> in context of schedulerInfo object, but if we have just one queue it wont be 
> an array, just a simple queue object.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to