[
https://issues.apache.org/jira/browse/HDFS-5125?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13747737#comment-13747737
]
Chris Nauroth commented on HDFS-5125:
-------------------------------------
Also, just to follow up on some questions:
bq. if "/C:" is relative, which path is it relative to? If it is workingDir,
what if working dir is at another drive? For example: "/D:/foo".
"/C:" is relative, because we need to match the behavior of the local file
system on Windows. On Windows, accessing the bare drive specifier accesses the
current working directory of the drive, and each drive can have a distinct
current working directory. Since the meaning of "C:" or "D:" changes as the
current working directory changes, the path is considered relative. See below
for a full example of how this works in the shell.
bq. hasDriveLetterSpecifier allow first "/" to be skiped, but the code "int
start = hasWindowsDrive(uri.getPath()) ? 3 : 0;" always assume first "/" exists.
What is confusing about this is that path strings can enter the {{Path}} class
either with or without the leading '/' before the drive spec, so the regex
needs to handle both. Then, after the path string gets translated to a {{URI}}
internally, the leading '/' is guaranteed to be in the URI. I believe the
current code in {{Path#isUriPathAbsolute}} is correct, because this code only
runs after the internal translation to {{URI}}.
{code}
C:\>cd C:\foo
C:\foo>dir C:
Volume in drive C has no label.
Volume Serial Number is C2FC-F17C
Directory of C:\foo
08/22/2013 06:00 PM <DIR> .
08/22/2013 06:00 PM <DIR> ..
0 File(s) 0 bytes
2 Dir(s) 14,801,162,240 bytes free
C:\foo>cd C:\bar
C:\bar>dir C:
Volume in drive C has no label.
Volume Serial Number is C2FC-F17C
Directory of C:\bar
08/22/2013 06:00 PM <DIR> .
08/22/2013 06:00 PM <DIR> ..
0 File(s) 0 bytes
2 Dir(s) 14,801,162,240 bytes free
C:\bar>cd D:\baz
C:\bar>dir D:
Volume in drive D is Temporary Storage
Volume Serial Number is B28B-7C3C
Directory of D:\baz
08/22/2013 06:00 PM <DIR> .
08/22/2013 06:00 PM <DIR> ..
0 File(s) 0 bytes
2 Dir(s) 298,357,399,552 bytes free
C:\bar>cd D:\buz
C:\bar>dir D:
Volume in drive D is Temporary Storage
Volume Serial Number is B28B-7C3C
Directory of D:\buz
08/22/2013 06:00 PM <DIR> .
08/22/2013 06:00 PM <DIR> ..
0 File(s) 0 bytes
2 Dir(s) 298,357,399,552 bytes free
{code}
> TestCreateEditsLog#testCanLoadCreatedEditsLog fails on Windows in globStatus
> ----------------------------------------------------------------------------
>
> Key: HDFS-5125
> URL: https://issues.apache.org/jira/browse/HDFS-5125
> Project: Hadoop HDFS
> Issue Type: Bug
> Components: test
> Affects Versions: 3.0.0, 2.1.1-beta
> Reporter: Chris Nauroth
> Assignee: Binglin Chang
>
> This test calls the {{CreateEditsLog}} tool, then runs {{globStatus}} on the
> local file system to find the resulting files before moving them to a
> directory where a NameNode can start up and read them. The HADOOP-9877 patch
> has caused this test to start failing on Windows due to internal calls to
> {{FileContext#getFileLinkStatus}} rejecting the {{Path}} arguments.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira