[
https://issues.apache.org/jira/browse/HDFS-14722?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16906194#comment-16906194
]
xuzq edited comment on HDFS-14722 at 8/13/19 1:25 PM:
------------------------------------------------------
Thanks [~ayushtkn] for the comment, and I attach a new patch, please review.
In addition to this problem, I think there is some bugs in *getListing*, please
check it.
*Bug one*:
||source||target namespace||destination||owner||group||permission||
|/mnt/test1|ns0|/mnt/test1|test1|test1|755|
|/mnt/test2|ns1|/mnt/test2|test2|test2|755|
The mount entry as above, the code as blew should return result?
And the result like: /mnt/test1 and /mnt/test2
{code:java}
routerProtocol.getListing("/mnt", HdfsFileStatus.EMPTY_NAME, false){code}
*Bug two:*
||source||target namespace||destination||owner||group||permission||
|/mnt|ns0|/mnt|mnt|mnt|755|
|/mnt/test1|ns1|/mnt/test1|mnt|mnt|755|
|/test1|ns2|/test1|test1|test1|755|
The mount entry as above, the code as blew.
The owner of *test1* in result should be *mnt* instead of *test1*?
*/test1* not the child of */mnt*, */mnt/test1* is the child of */mnt*.
{code:java}
routerProtocol.getListing("/mnt", HdfsFileStatus.EMPTY_NAME, false)
{code}
[~elgoiri] [~hexiaoqiao] [~ayushtkn] please confirm it.
If these are bugs, I will create new Jira to fix them.
was (Author: xuzq_zander):
Thanks [~ayushtkn] for the comment, and I attach a new patch, please review.
In addition to this problem, I think there is some bugs in *getListing*, please
check it.
*Bug one*:
||source||target namespace||destination||owner||group||permission||
|/mnt/test1|ns0|/mnt/test1|test1|test1|755|
|/mnt/test2|ns1|/mnt/test2|test2|test2|755|
The mount entry as above, the code as blew should return result?
And the result like: /mnt/test1 and /mnt/test2
{code:java}
routerProtocol.getListing("/mnt", HdfsFileStatus.EMPTY_NAME, false){code}
*Bug two:*
||source||target namespace||destination||owner||group||permission||
|/mnt|ns0|/mnt|mnt|mnt|755|
|/mnt/test1|ns1|/mnt/test1|mnt|mnt|755|
|/test1|ns2|/test1|test1|test1|755|
The mount entry as above, the code as blew.
The owner of *test1* should be mnt instead of test1?
*/test1* not the child of */mnt*, */mnt/test1* is the child of */mnt*.
{code:java}
routerProtocol.getListing("/mnt", HdfsFileStatus.EMPTY_NAME, false)
{code}
[~elgoiri] [~hexiaoqiao] [~ayushtkn] please confirm it.
If these are bugs, I will create new Jira to fix them.
> RBF: GetMountPointStatus should return mountTable information when
> getFileInfoAll throw IOException
> ---------------------------------------------------------------------------------------------------
>
> Key: HDFS-14722
> URL: https://issues.apache.org/jira/browse/HDFS-14722
> Project: Hadoop HDFS
> Issue Type: Bug
> Components: rbf
> Reporter: xuzq
> Assignee: xuzq
> Priority: Major
> Attachments: HDFS-14722-trunk-001.patch, HDFS-14722-trunk-002.patch,
> HDFS-14722-trunk-003.patch
>
>
> When IOException in getFileInfoAll, we should return the mountTable
> informations instead of super information.
> Code like:
> {code:java}
> // RouterClientProtocol#getMountPointStatus
> try {
> String mName = name.startsWith("/") ? name : "/" + name;
> MountTableResolver mountTable = (MountTableResolver) subclusterResolver;
> MountTable entry = mountTable.getMountPoint(mName);
> if (entry != null) {
> RemoteMethod method = new RemoteMethod("getFileInfo",
> new Class<?>[] {String.class}, new RemoteParam());
> HdfsFileStatus fInfo = getFileInfoAll(
> entry.getDestinations(), method, mountStatusTimeOut);
> if (fInfo != null) {
> permission = fInfo.getPermission();
> owner = fInfo.getOwner();
> group = fInfo.getGroup();
> childrenNum = fInfo.getChildrenNum();
> } else {
> permission = entry.getMode();
> owner = entry.getOwnerName();
> group = entry.getGroupName();
> }
> }
> } catch (IOException e) {
> LOG.error("Cannot get mount point: {}", e.getMessage());
> }
> {code}
--
This message was sent by Atlassian JIRA
(v7.6.14#76016)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]