[ https://issues.apache.org/jira/browse/TEZ-3993?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16778649#comment-16778649 ]
TezQA commented on TEZ-3993: ---------------------------- | (x) *{color:red}-1 overall{color}* | \\ \\ || Vote || Subsystem || Runtime || Comment || | {color:blue}0{color} | {color:blue} reexec {color} | {color:blue} 13m 42s{color} | {color:blue} Docker mode activated. {color} | || || || || {color:brown} Prechecks {color} || | {color:green}+1{color} | {color:green} @author {color} | {color:green} 0m 0s{color} | {color:green} The patch does not contain any @author tags. {color} | | {color:green}+1{color} | {color:green} test4tests {color} | {color:green} 0m 0s{color} | {color:green} The patch appears to include 1 new or modified test files. {color} | || || || || {color:brown} master Compile Tests {color} || | {color:blue}0{color} | {color:blue} mvndep {color} | {color:blue} 2m 24s{color} | {color:blue} Maven dependency ordering for branch {color} | | {color:green}+1{color} | {color:green} mvninstall {color} | {color:green} 5m 33s{color} | {color:green} master passed {color} | | {color:green}+1{color} | {color:green} compile {color} | {color:green} 1m 17s{color} | {color:green} master passed {color} | | {color:green}+1{color} | {color:green} checkstyle {color} | {color:green} 1m 24s{color} | {color:green} master passed {color} | | {color:red}-1{color} | {color:red} findbugs {color} | {color:red} 0m 37s{color} | {color:red} tez-mapreduce in master has 2 extant Findbugs warnings. {color} | | {color:green}+1{color} | {color:green} javadoc {color} | {color:green} 1m 25s{color} | {color:green} master passed {color} | || || || || {color:brown} Patch Compile Tests {color} || | {color:blue}0{color} | {color:blue} mvndep {color} | {color:blue} 0m 16s{color} | {color:blue} Maven dependency ordering for patch {color} | | {color:green}+1{color} | {color:green} mvninstall {color} | {color:green} 1m 16s{color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} compile {color} | {color:green} 1m 12s{color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} javac {color} | {color:green} 1m 12s{color} | {color:green} the patch passed {color} | | {color:orange}-0{color} | {color:orange} checkstyle {color} | {color:orange} 0m 18s{color} | {color:orange} tez-mapreduce: The patch generated 1 new + 50 unchanged - 0 fixed = 51 total (was 50) {color} | | {color:orange}-0{color} | {color:orange} checkstyle {color} | {color:orange} 0m 25s{color} | {color:orange} tez-dag: The patch generated 2 new + 29 unchanged - 1 fixed = 31 total (was 30) {color} | | {color:red}-1{color} | {color:red} whitespace {color} | {color:red} 0m 0s{color} | {color:red} The patch has 7 line(s) that end in whitespace. Use git apply --whitespace=fix <<patch_file>>. Refer https://git-scm.com/docs/git-apply {color} | | {color:green}+1{color} | {color:green} findbugs {color} | {color:green} 2m 41s{color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} javadoc {color} | {color:green} 1m 20s{color} | {color:green} the patch passed {color} | || || || || {color:brown} Other Tests {color} || | {color:green}+1{color} | {color:green} unit {color} | {color:green} 1m 47s{color} | {color:green} tez-api in the patch passed. {color} | | {color:green}+1{color} | {color:green} unit {color} | {color:green} 1m 5s{color} | {color:green} tez-mapreduce in the patch passed. {color} | | {color:green}+1{color} | {color:green} unit {color} | {color:green} 3m 47s{color} | {color:green} tez-dag in the patch passed. {color} | | {color:green}+1{color} | {color:green} asflicense {color} | {color:green} 0m 49s{color} | {color:green} The patch does not generate ASF License warnings. {color} | | {color:black}{color} | {color:black} {color} | {color:black} 45m 20s{color} | {color:black} {color} | \\ \\ || Subsystem || Report/Notes || | Docker | Client=17.05.0-ce Server=17.05.0-ce Image:yetus/tez:d4a62de | | JIRA Issue | TEZ-3993 | | JIRA Patch URL | https://issues.apache.org/jira/secure/attachment/12941240/TEZ-3993.002.patch | | Optional Tests | dupname asflicense javac javadoc unit findbugs checkstyle compile | | uname | Linux 1d0faba6dd4e 3.13.0-153-generic #203-Ubuntu SMP Thu Jun 14 08:52:28 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux | | Build tool | maven | | Personality | /testptch/patchprocess/precommit/personality/provided.sh | | git revision | master / 0093f8b | | maven | version: Apache Maven 3.3.9 | | Default Java | 1.8.0_191 | | findbugs | v3.0.1 | | findbugs | https://builds.apache.org/job/PreCommit-TEZ-Build/102/artifact/out/branch-findbugs-tez-mapreduce-warnings.html | | checkstyle | https://builds.apache.org/job/PreCommit-TEZ-Build/102/artifact/out/diff-checkstyle-tez-mapreduce.txt | | checkstyle | https://builds.apache.org/job/PreCommit-TEZ-Build/102/artifact/out/diff-checkstyle-tez-dag.txt | | whitespace | https://builds.apache.org/job/PreCommit-TEZ-Build/102/artifact/out/whitespace-eol.txt | | Test Results | https://builds.apache.org/job/PreCommit-TEZ-Build/102/testReport/ | | Max. process+thread count | 220 (vs. ulimit of 10000) | | modules | C: tez-api tez-mapreduce tez-dag U: . | | Console output | https://builds.apache.org/job/PreCommit-TEZ-Build/102/console | | Powered by | Apache Yetus 0.8.0 http://yetus.apache.org | This message was automatically generated. > Tez fails to parse windows file paths in local mode > --------------------------------------------------- > > Key: TEZ-3993 > URL: https://issues.apache.org/jira/browse/TEZ-3993 > Project: Apache Tez > Issue Type: Bug > Reporter: Jonathan Eagles > Assignee: Jonathan Eagles > Priority: Major > Attachments: TEZ-3993.001.patch, TEZ-3993.002.patch > > > TezLocalCacheManager tries to generate symlinks to files that it puts in the > local cache, but the code that it uses to construct the path names is not > safe on Windows and causes bad file names to be constructed when run in a > Windows environment. On Windows, a path like file:/c:/path/to/my/file should > be legal and transform to c:\path\to\my\file, but with the invalid construct, > it turns into the illegal value /c:/path/to/my/file instead. > In TezLocalCacheManager, there is code that does > {code} > private boolean createSymlink(Path target, Path link) throws IOException { > LOG.info("Creating symlink: {} <- {}", target, link); > String targetPath = target.toUri().getPath(); > String linkPath = link.toUri().getPath(); > {code} > It looks like there are several other places in the Tez code that also use > the Path.toUri().getPath() construct that probably also need to be fixed in > order to work correctly on Windows. > The construct Path.toUri().getPath() doesn't handle windows directories > correctly. The Java File class understands how to do this correctly, so this > should really be replaced by > {code} > private boolean createSymlink(Path target, Path link) throws IOException { > LOG.info("Creating symlink: {} <- {}", target, link); > String targetPath = new File(target.toUri()).getCanonicalPath(); > String linkPath = new File(link.toUri()).getCanonicalPath(); > {code} > {code} > 2018-09-19T16:32:53,287 ERROR [LocalContainerLauncher-SubTaskRunner] > org.apache.tez.dag.app.launcher.LocalContainerLauncher - TezSubTaskRunner > failed due to exception > java.nio.file.InvalidPathException: Illegal char <:> at index 2: > /C:/Users/...fullpath > at sun.nio.fs.WindowsPathParser.normalize(WindowsPathParser.java:182) > at sun.nio.fs.WindowsPathParser.parse(WindowsPathParser.java:153) > at sun.nio.fs.WindowsPathParser.parse(WindowsPathParser.java:77) > at sun.nio.fs.WindowsPath.parse(WindowsPath.java:94) > at sun.nio.fs.WindowsFileSystem.getPath(WindowsFileSystem.java:255) > at java.nio.file.Paths.get(Paths.java:84) > at > org.apache.tez.dag.app.launcher.TezLocalCacheManager.createSymlink(TezLocalCacheManager.java:173) > at > org.apache.tez.dag.app.launcher.TezLocalCacheManager.localize(TezLocalCacheManager.java:126) > at > org.apache.tez.dag.app.launcher.LocalContainerLauncher.launch(LocalContainerLauncher.java:263) > at > org.apache.tez.dag.app.launcher.LocalContainerLauncher.access$300(LocalContainerLauncher.java:82) > at > org.apache.tez.dag.app.launcher.LocalContainerLauncher$TezSubTaskRunner.run(LocalContainerLauncher.java:207) > {code} -- This message was sent by Atlassian JIRA (v7.6.3#76005)