[
https://issues.apache.org/jira/browse/YARN-11358?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17624186#comment-17624186
]
ASF GitHub Bot commented on YARN-11358:
---------------------------------------
slfan1989 commented on code in PR #5056:
URL: https://github.com/apache/hadoop/pull/5056#discussion_r1005232795
##########
hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-router/src/main/java/org/apache/hadoop/yarn/server/router/webapp/FederationInterceptorREST.java:
##########
@@ -2036,27 +2048,34 @@ private <R> Map<SubClusterInfo, R>
invokeConcurrent(Collection<SubClusterInfo> c
getMethod(request.getMethodName(), request.getTypes());
Object retObj = method.invoke(interceptor, request.getParams());
R ret = clazz.cast(retObj);
- return ret;
+ return Pair.of(ret, null);
} catch (Exception e) {
LOG.error("SubCluster {} failed to call {} method.",
info.getSubClusterId(), request.getMethodName(), e);
- return null;
+ return Pair.of(null, e);
}
});
}
clusterIds.stream().forEach(clusterId -> {
try {
- Future<R> future = compSvc.take();
- R response = future.get();
+ Future<Pair<R, Exception>> future = compSvc.take();
+ Pair<R, Exception> pair = future.get();
+ R response = pair.getKey();
if (response != null) {
results.put(clusterId, response);
}
+ Exception exception = pair.getRight();
Review Comment:
I will fix it.
> [Federation] Add FederationInterceptor#allow-partial-result config.
> -------------------------------------------------------------------
>
> Key: YARN-11358
> URL: https://issues.apache.org/jira/browse/YARN-11358
> Project: Hadoop YARN
> Issue Type: Improvement
> Components: federation, router
> Affects Versions: 3.4.0
> Reporter: fanshilun
> Assignee: fanshilun
> Priority: Major
> Labels: pull-request-available
>
> When we use Federation, we will have multiple sub-clusters, and some
> interfaces need to call all clusters to get results,
> such as getNodes, getNodeToLabels, etc.
> But if the sub-cluster is unavailable when we call the interface, should the
> interface return the result?
> The current code is to return the result.If the result is returned, the
> result information is inaccurate;
> if the result is not returned, it is not user-friendly
> We'd better add a parameter control, the user chooses whether to report an
> error or return the result.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]