[ 
https://issues.apache.org/jira/browse/HADOOP-9984?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Chris Nauroth updated HADOOP-9984:
----------------------------------

    Attachment: HADOOP-9984.011.patch

Hi, [~cmccabe].  I was still seeing failures on Mac/FreeBSD.  The problem was 
due to hard-coding of {{`link'}} in the stat escape sequence, where the 
subsequent logic depends on exactly 7 characters length difference compared to 
the source path.

I'm attaching version 11 of the patch with a small change to make this insert 
the value of the source {{Path#toString}}.  Tests are passing on Mac for me 
with this version of the patch.  For reference, here is the incremental diff of 
version 10 to version 11:

{code}
[chris@Chriss-MacBook-Pro:ttys004] hadoop-common                                
                         (git:trunk)
> diff ~/patch/HADOOP-9984.010.patch ~/patch/HADOOP-9984.011.patch 
1098c1098
< index c2ec63c..580a509 100644
---
> index c2ec63c..df9460c 100644
1101c1101
< @@ -99,10 +99,10 @@ FileStatus getFileStatusForTesting() {
---
> @@ -99,10 +99,13 @@ FileStatus getFileStatusForTesting() {
1106c1106,1108
< +          "stat", derefFlag + "c", "%s,%F,%Y,%X,%a,%U,%G,%n,%N", 
path.toString() };
---
> +          "stat", derefFlag + "c",
> +          "%s,%F,%Y,%X,%a,%U,%G,%n,%N",
> +          path.toString() };
1110c1112,1113
< +          "stat", derefFlag + "f", "%z,%HT,%m,%a,%Op,%Su,%Sg,%N,`link' -> 
`%Y'",
---
> +          "stat", derefFlag + "f",
> +          "%z,%HT,%m,%a,%Op,%Su,%Sg,%N,`" + path.toString() + "' -> `%Y'",
1114c1117
< @@ -145,21 +145,32 @@ protected void parseExecResult(BufferedReader lines) 
throws IOException {
---
> @@ -145,21 +148,32 @@ protected void parseExecResult(BufferedReader lines) 
> throws IOException {
{code}


> FileSystem#globStatus and FileSystem#listStatus should resolve symlinks by 
> default
> ----------------------------------------------------------------------------------
>
>                 Key: HADOOP-9984
>                 URL: https://issues.apache.org/jira/browse/HADOOP-9984
>             Project: Hadoop Common
>          Issue Type: Bug
>          Components: fs
>    Affects Versions: 2.1.0-beta
>            Reporter: Colin Patrick McCabe
>            Assignee: Colin Patrick McCabe
>            Priority: Blocker
>         Attachments: HADOOP-9984.001.patch, HADOOP-9984.003.patch, 
> HADOOP-9984.005.patch, HADOOP-9984.007.patch, HADOOP-9984.009.patch, 
> HADOOP-9984.010.patch, HADOOP-9984.011.patch
>
>
> During the process of adding symlink support to FileSystem, we realized that 
> many existing HDFS clients would be broken by listStatus and globStatus 
> returning symlinks.  One example is applications that assume that 
> !FileStatus#isFile implies that the inode is a directory.  As we discussed in 
> HADOOP-9972 and HADOOP-9912, we should default these APIs to returning 
> resolved paths.



--
This message was sent by Atlassian JIRA
(v6.1#6144)

Reply via email to