[
https://issues.apache.org/jira/browse/HDFS-16728?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17578579#comment-17578579
]
ASF GitHub Bot commented on HDFS-16728:
---------------------------------------
goiri commented on code in PR #4734:
URL: https://github.com/apache/hadoop/pull/4734#discussion_r943742721
##########
hadoop-hdfs-project/hadoop-hdfs-rbf/src/test/java/org/apache/hadoop/hdfs/server/federation/router/TestRouterRpc.java:
##########
@@ -1547,6 +1547,24 @@ public void testRenewLeaseWithMultiStream() throws
Exception {
}
}
+ @Test
+ public void testMkdirWithDisableNameService() throws Exception {
+ MockResolver resolver =
(MockResolver)router.getRouter().getSubclusterResolver();
+ String ns0 = cluster.getNameservices().get(0);
+ resolver.addLocation("/mnt", ns0, "/");
+ MockResolver activeNamenodeResolver =
(MockResolver)router.getRouter().getNamenodeResolver();
+ activeNamenodeResolver.disableNamespace(ns0);
+
+ try {
+ FsPermission permission = new FsPermission("777");
+ LambdaTestUtils.intercept(NoLocationException.class,
+ () -> router.getRouter().getRpcServer()
Review Comment:
Extract router.getRouter().getRpcServer() and we can make this fit in one
line.
##########
hadoop-hdfs-project/hadoop-hdfs-rbf/src/main/java/org/apache/hadoop/hdfs/server/federation/router/RouterRpcServer.java:
##########
@@ -1765,6 +1765,9 @@ protected List<RemoteLocation> getLocationsForPath(String
path,
locs.add(loc);
}
}
+ if (locs.isEmpty()) {
+ throw new NoLocationException(path,
this.subclusterResolver.getClass().getSimpleName());
Review Comment:
Cleaner to pass this.subclusterResolver.getClass() and do the
getSimpleName() in the exception.
> RBF throw IndexOutOfBoundsException with disableNameServices
> ------------------------------------------------------------
>
> Key: HDFS-16728
> URL: https://issues.apache.org/jira/browse/HDFS-16728
> Project: Hadoop HDFS
> Issue Type: Bug
> Reporter: ZanderXu
> Assignee: ZanderXu
> Priority: Major
> Labels: pull-request-available
>
> RBF will throw an IndexOutOfBoundsException when the namespace is disabled.
> Suppose we have a mount point /a/b -> ns0 -> /a/b and we disabled the ns0.
> RBF will throw IndexOutOfBoundsException during handling requests with path
> starting with /a/b.
> {code:java}
> java.lang.IndexOutOfBoundsException: Index: 0, Size: 0 at
> java.util.ArrayList.rangeCheck(ArrayList.java:657)
> at java.util.ArrayList.get(ArrayList.java:433)
> at
> org.apache.hadoop.hdfs.server.federation.router.RouterClientProtocol.mkdirs(RouterClientProtocol.java:756)
> at
> org.apache.hadoop.hdfs.server.federation.router.RouterRpcServer.mkdirs(RouterRpcServer.java:980)
> {code}
--
This message was sent by Atlassian Jira
(v8.20.10#820010)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]