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

Ayush Saxena commented on HDFS-14369:
-------------------------------------

Thanx [~ajisakaa] and [~crh] for the analysis.

Seems like the mount table resolver doesn't tend to remove the leading slash 
while getting the mount entry and believes in matching the entry name exactly.

Either we can handle the leading slash at the \{{MountTableResolver.java}} or 
even at getListing() at L681.

I tried with this at \{{MountTableResolver.java}} and the test passed for me.

 
{code:java}
 public List<String> getMountPoints(String path) throws IOException {
    verifyMountTable();
    path = path.replaceAll(".+/$", path.substring(0, path.length() - 1));
{code}
 

 

> RBF: Fix trailing "/" for webhdfs
> ---------------------------------
>
>                 Key: HDFS-14369
>                 URL: https://issues.apache.org/jira/browse/HDFS-14369
>             Project: Hadoop HDFS
>          Issue Type: Sub-task
>            Reporter: CR Hota
>            Assignee: CR Hota
>            Priority: Major
>         Attachments: HDFS-14369-HDFS-13891-regressiontest-001.patch
>
>
> WebHDFS doesn't trim trailing slash causing discrepancy in operations.
> Example below
> --------------------------
> Using HDFS API, two directory are listed.
> {code}
> $ hdfs dfs -ls hdfs://<router>:8888/tmp/
> Found 2 items
> drwxrwxrwx   - hdfs supergroup          0 2018-11-09 17:50 
> hdfs://<router>:8888/tmp/tmp1
> drwxrwxrwx   - hdfs supergroup          0 2018-11-09 17:50 
> hdfs://<router>:8888/tmp/tmp2
> {code}
> Using WebHDFS API, only one directory is listed.
> {code}
> $ curl -u : --negotiate -i 
> "http://<router>:50071/webhdfs/v1/tmp/?op=LISTSTATUS"
> (snip)
> {"FileStatuses":{"FileStatus":[
> {"accessTime":0,"blockSize":0,"childrenNum":0,"fileId":16387,"group":"supergroup","length":0,"modificationTime":1552016766769,"owner":"hdfs","pathSuffix":"tmp1","permission":"755","replication":0,"storagePolicy":0,"type":"DIRECTORY"}
> ]}}
> {code}
> The mount table is as follows:
> {code}
> $ hdfs dfsrouteradmin -ls /tmp
> Mount Table Entries:
> Source                    Destinations              Owner                     
> Group                     Mode                      Quota/Usage              
> /tmp                      ns1->/tmp                 aajisaka                  
> users                     rwxr-xr-x                 [NsQuota: -/-, SsQuota: 
> -/-]
> /tmp/tmp1                 ns1->/tmp/tmp1            aajisaka                  
> users                     rwxr-xr-x                 [NsQuota: -/-, SsQuota: 
> -/-]
> /tmp/tmp2                 ns2->/tmp/tmp2            aajisaka                  
> users                     rwxr-xr-x                 [NsQuota: -/-, SsQuota: 
> -/-]
> {code}
> Without trailing thrash, two directories are listed.
> {code}
> $ curl -u : --negotiate -i 
> "http://<router>:50071/webhdfs/v1/tmp?op=LISTSTATUS"
> (snip)
> {"FileStatuses":{"FileStatus":[
> {"accessTime":1541753421917,"blockSize":0,"childrenNum":0,"fileId":0,"group":"supergroup","length":0,"modificationTime":1541753421917,"owner":"hdfs","pathSuffix":"tmp1","permission":"777","replication":0,"storagePolicy":0,"symlink":"","type":"DIRECTORY"},
> {"accessTime":1541753429812,"blockSize":0,"childrenNum":0,"fileId":0,"group":"supergroup","length":0,"modificationTime":1541753429812,"owner":"hdfs","pathSuffix":"tmp2","permission":"777","replication":0,"storagePolicy":0,"symlink":"","type":"DIRECTORY"}
> ]}}
> {code}
> [~ajisakaa] Thanks for reporting this, I borrowed the text from 
> HDFS-13972



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

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

Reply via email to