[
https://issues.apache.org/jira/browse/HIVE-6648?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13964291#comment-13964291
]
Hive QA commented on HIVE-6648:
-------------------------------
{color:green}Overall{color}: +1 all checks pass
Here are the results of testing the latest attachment:
https://issues.apache.org/jira/secure/attachment/12639322/HIVE-6648.patch
{color:green}SUCCESS:{color} +1 5556 tests passed
Test results:
http://bigtop01.cloudera.org:8080/job/PreCommit-HIVE-Build/2190/testReport
Console output:
http://bigtop01.cloudera.org:8080/job/PreCommit-HIVE-Build/2190/console
Messages:
{noformat}
Executing org.apache.hive.ptest.execution.PrepPhase
Executing org.apache.hive.ptest.execution.ExecutionPhase
Executing org.apache.hive.ptest.execution.ReportingPhase
{noformat}
This message is automatically generated.
ATTACHMENT ID: 12639322
> Permissions are not inherited correctly when tables have multiple partition
> columns
> -----------------------------------------------------------------------------------
>
> Key: HIVE-6648
> URL: https://issues.apache.org/jira/browse/HIVE-6648
> Project: Hive
> Issue Type: Bug
> Affects Versions: 0.12.0, 0.13.0
> Reporter: Henry Robinson
> Assignee: Szehon Ho
> Attachments: HIVE-6648.patch
>
>
> {{Warehouse.mkdirs()}} always looks at the immediate parent of the path that
> it creates when determining what permissions to inherit. However, it may have
> created that parent directory as well, in which case it will have the default
> permissions and will not have inherited them.
> This is a problem when performing an {{INSERT}} into a table with more than
> one partition column. E.g., in an empty table:
> {{INSERT INTO TABLE tbl PARTITION(p1=1, p2=2) ... }}
> A new subdirectory /p1=1/p2=2 will be created, and with permission
> inheritance (per HIVE-2504) enabled, the intention is presumably for both new
> directories to inherit the root table dir's permissions. However,
> {{mkdirs()}} will only set the permission of the leaf directory (i.e.
> /p2=2/), and then only to the permissions of /p1=1/, which was just created.
> {code}
> public boolean mkdirs(Path f) throws MetaException {
> FileSystem fs = null;
> try {
> fs = getFs(f);
> LOG.debug("Creating directory if it doesn't exist: " + f);
> //Check if the directory already exists. We want to change the
> permission
> //to that of the parent directory only for newly created directories.
> if (this.inheritPerms) {
> try {
> return fs.getFileStatus(f).isDir();
> } catch (FileNotFoundException ignore) {
> }
> }
> boolean success = fs.mkdirs(f);
> if (this.inheritPerms && success) {
> // Set the permission of parent directory.
> // HNR: This is the bug - getParent() may refer to a just-created
> directory.
> fs.setPermission(f, fs.getFileStatus(f.getParent()).getPermission());
> }
> return success;
> } catch (IOException e) {
> closeFs(fs);
> MetaStoreUtils.logAndThrowMetaException(e);
> }
> return false;
> }
> {code}
--
This message was sent by Atlassian JIRA
(v6.2#6252)