You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@drill.apache.org by "ASF GitHub Bot (JIRA)" <ji...@apache.org> on 2017/01/27 15:31:24 UTC

[jira] [Commented] (DRILL-5224) CTTAS: fix errors connected with system path delimiters (Windows)

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

ASF GitHub Bot commented on DRILL-5224:
---------------------------------------

GitHub user arina-ielchiieva opened a pull request:

    https://github.com/apache/drill/pull/731

    DRILL-5224: CTTAS: fix errors connected with system path delimiters (…

    …Windows)
    
    Replaced `java.nio.file.Paths.get()` to `org.apache.hadoop.fs.Path` as the latest works the same disregarding the system. Errors related to `java.nio.file.Paths.get()` usage are described in Jira DRILL-5224.

You can merge this pull request into a Git repository by running:

    $ git pull https://github.com/arina-ielchiieva/drill DRILL-5224

Alternatively you can review and apply these changes as the patch at:

    https://github.com/apache/drill/pull/731.patch

To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:

    This closes #731
    
----
commit 87a2d270633eeac7bd78172b6b0935ab4ead344e
Author: Arina Ielchiieva <ar...@gmail.com>
Date:   2017-01-26T18:14:28Z

    DRILL-5224: CTTAS: fix errors connected with system path delimiters (Windows)

----


> CTTAS: fix errors connected with system path delimiters (Windows)
> -----------------------------------------------------------------
>
>                 Key: DRILL-5224
>                 URL: https://issues.apache.org/jira/browse/DRILL-5224
>             Project: Apache Drill
>          Issue Type: Bug
>    Affects Versions: 1.10.0
>         Environment: Windows 10
>            Reporter: Arina Ielchiieva
>            Assignee: Arina Ielchiieva
>             Fix For: 1.10.0
>
>
> Problem 1:
> Error occurs when attempting to create temporary table on Windows:
> {noformat}
> 0: jdbc:drill:zk=local> create temporary table t as select * from sys.version;
> Error: SYSTEM ERROR: InvalidPathException: Illegal char <:> at index 4: file:///\tmp\3191db8e-279d-4ced-b0e5-32b3b477edfb
> {noformat}
> Root cause:
> when creating temporary directory we merge file system uri, temporary workspace location and session id into one path using java.nio.file.Paths.get() but this method cannot resolve path when path has different delimiters.
> Fix:
> Use org.apache.hadoop.fs.Path tools to merge path, path string is normalized during creation.
> {noformat}
> new Path(fs.getUri().toString(), new Path(temporaryWorkspace.getDefaultLocation(), sessionId));
> {noformat}
> Problem 2:
> When temporary table is being manually dropped using drop table command, though actual table is dropped, remnant folder is left.
> Root cause:
> Before adding to temporary table to the list of temporary tables, its generated name is concatenated with session id (as parent and child folders). java.nio.file.Paths.get() is used for concatenation but it preserves current system delimiter. When table is being dropped, passed table name is split using org.apache.hadoop.fs.Path.SEPARATOR, since it's assumed that path was created using org.apache.hadoop.fs.Path tools where path separators are normalized to one format disregarding the system.
> Fix:
> Concatenate session id with generated table name using org.apache.hadoop.fs.Path tools.
> {noformat}
> new Path(sessionId, UUID.randomUUID().toString()).toUri().getPath();
> {noformat}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)