slfan1989 commented on code in PR #5193:
URL: https://github.com/apache/hadoop/pull/5193#discussion_r1048598592
##########
hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-router/src/main/java/org/apache/hadoop/yarn/server/router/rmadmin/FederationRMAdminInterceptor.java:
##########
@@ -192,11 +192,11 @@ public RefreshQueuesResponse
refreshQueues(RefreshQueuesRequest request)
}
} catch (YarnException e) {
routerMetrics.incrRefreshQueuesFailedRetrieved();
- RouterServerUtil.logAndThrowException(e, "Unable to refreshQueue due to
exception.");
+ throw e;
Review Comment:
I found that if `Unable to refreshUserToGroupsMappings due to exception.` is
directly displayed, the user still does not know why the exception occurred. It
is better to display like this, `SC-2 is not an active subCluster.`, so I
choose to throw the exception directly.
Stack information before modification
```
Caused by: org.apache.hadoop.yarn.exceptions.YarnException: Unable to
refreshUserToGroupsMappings due to exception.
at
org.apache.hadoop.yarn.server.router.RouterServerUtil.logAndThrowException(RouterServerUtil.java:82)
at
org.apache.hadoop.yarn.server.router.rmadmin.FederationRMAdminInterceptor.refreshUserToGroupsMappings(FederationRMAdminInterceptor.java:362)
at
org.apache.hadoop.yarn.server.router.rmadmin.TestFederationRMAdminInterceptor.lambda$testSC1RefreshUserToGroupsMappings$7(TestFederationRMAdminInterceptor.java:260)
at
org.apache.hadoop.test.LambdaTestUtils.intercept(LambdaTestUtils.java:498)
at
org.apache.hadoop.test.LambdaTestUtils.intercept(LambdaTestUtils.java:384)
at
org.apache.hadoop.test.LambdaTestUtils.intercept(LambdaTestUtils.java:453)
... 30 more
Caused by: org.apache.hadoop.yarn.exceptions.YarnException: subClusterId =
SC-2 is not an active subCluster.
at
org.apache.hadoop.yarn.server.router.rmadmin.RMAdminProtocolMethod.invoke(RMAdminProtocolMethod.java:165)
at
org.apache.hadoop.yarn.server.router.rmadmin.RMAdminProtocolMethod.invokeConcurrent(RMAdminProtocolMethod.java:69)
at
org.apache.hadoop.yarn.server.router.rmadmin.FederationRMAdminInterceptor.refreshUserToGroupsMappings(FederationRMAdminInterceptor.java:352)
... 34 more
```
I agree with you that we should log, so I'm going to modify it like this.
```
org.apache.hadoop.yarn.exceptions.YarnException: Unable to
refreshUserToGroupsMappings due to exception. subClusterId = SC-2 is not an
active subCluster.
at
org.apache.hadoop.yarn.server.router.RouterServerUtil.logAndThrowException(RouterServerUtil.java:82)
at
org.apache.hadoop.yarn.server.router.rmadmin.FederationRMAdminInterceptor.refreshUserToGroupsMappings(FederationRMAdminInterceptor.java:362)
at
org.apache.hadoop.yarn.server.router.rmadmin.TestFederationRMAdminInterceptor.testSC1RefreshUserToGroupsMappings(TestFederationRMAdminInterceptor.java:258)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at
org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:59)
at
org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at
org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:56)
at
org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
at
org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
at
org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)
at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)
at
org.junit.runners.BlockJUnit4ClassRunner$1.evaluate(BlockJUnit4ClassRunner.java:100)
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:366)
at
org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:103)
at
org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:63)
at org.junit.runners.ParentRunner$4.run(ParentRunner.java:331)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:79)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:329)
at org.junit.runners.ParentRunner.access$100(ParentRunner.java:66)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:293)
at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)
at org.junit.runners.ParentRunner.run(ParentRunner.java:413)
at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
at
com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:69)
at
com.intellij.rt.junit.IdeaTestRunner$Repeater$1.execute(IdeaTestRunner.java:38)
at
com.intellij.rt.execution.junit.TestsRepeater.repeat(TestsRepeater.java:11)
at
com.intellij.rt.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:35)
at
com.intellij.rt.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:235)
at com.intellij.rt.junit.JUnitStarter.main(JUnitStarter.java:54)
Caused by: org.apache.hadoop.yarn.exceptions.YarnException: subClusterId =
SC-NON is not an active subCluster.
at
org.apache.hadoop.yarn.server.router.rmadmin.RMAdminProtocolMethod.invoke(RMAdminProtocolMethod.java:165)
at
org.apache.hadoop.yarn.server.router.rmadmin.RMAdminProtocolMethod.invokeConcurrent(RMAdminProtocolMethod.java:69)
at
org.apache.hadoop.yarn.server.router.rmadmin.FederationRMAdminInterceptor.refreshUserToGroupsMappings(FederationRMAdminInterceptor.java:352)
... 30 more
```
--
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: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]