[
https://issues.apache.org/jira/browse/HIVE-18625?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16356130#comment-16356130
]
Sahil Takiar commented on HIVE-18625:
-------------------------------------
Few comments
{code}
boolean created = fs.mkdirs(path, fsPermission);
if (!created) {
throw new IOException("mkdirs failed to create " + path + " on fs " + fs);
}
{code}
Can be simplified to:
{code}
if (!fs.mkdirs(...) { ... }
{code}
Think the exception message should be something like - "Failed to create
directory ...". What does {{fs#toString()}} print out?
You probably want to split {{testCreatePath}} into multiple tests.
> SessionState Not Checking For Directory Creation Result
> -------------------------------------------------------
>
> Key: HIVE-18625
> URL: https://issues.apache.org/jira/browse/HIVE-18625
> Project: Hive
> Issue Type: Improvement
> Components: HiveServer2
> Affects Versions: 3.0.0, 2.4.0, 2.3.2
> Reporter: BELUGA BEHR
> Assignee: Andrew Sherman
> Priority: Minor
> Attachments: HIVE-18625.1.patch
>
>
> https://github.com/apache/hive/blob/master/ql/src/java/org/apache/hadoop/hive/ql/session/SessionState.java#L773
> {code:java}
> private static void createPath(HiveConf conf, Path path, String permission,
> boolean isLocal,
> boolean isCleanUp) throws IOException {
> FsPermission fsPermission = new FsPermission(permission);
> FileSystem fs;
> if (isLocal) {
> fs = FileSystem.getLocal(conf);
> } else {
> fs = path.getFileSystem(conf);
> }
> if (!fs.exists(path)) {
> fs.mkdirs(path, fsPermission);
> String dirType = isLocal ? "local" : "HDFS";
> LOG.info("Created " + dirType + " directory: " + path.toString());
> }
> if (isCleanUp) {
> fs.deleteOnExit(path);
> }
> }
> {code}
> The method {{fs.mkdirs(path, fsPermission)}} returns a boolean value
> indicating if the directory creation was successful or not. Hive ignores
> this return value and therefore could be acting on a directory that doesn't
> exist.
> Please capture the result, check it, and throw an Exception if it failed
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)