phoenix-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "ASF GitHub Bot (JIRA)" <>
Subject [jira] [Commented] (PHOENIX-4231) Support restriction of remote UDF load sources
Date Tue, 06 Feb 2018 23:48:00 GMT


ASF GitHub Bot commented on PHOENIX-4231:

Github user apurtell commented on a diff in the pull request:
    --- Diff: phoenix-core/src/main/java/org/apache/phoenix/jdbc/ ---
    @@ -907,10 +909,15 @@ public MutationState execute() throws SQLException {
                         try {
                             FileSystem fs = dynamicJarsDirPath.getFileSystem(conf);
                             List<LiteralParseNode> jarPaths = getJarPaths();
    -                        for (LiteralParseNode jarPath : jarPaths) {
    -                            File f = new File((String) jarPath.getValue());
    -                            fs.copyFromLocalFile(new Path(f.getAbsolutePath()), new Path(
    -                                    dynamicJarsDir + f.getName()));
    +                        for (LiteralParseNode jarPathNode : jarPaths) {
    +                          String jarPathName = (String) jarPathNode.getValue();
    +                          File f = new File(jarPathName);
    +                          Path dynamicJarsDirPathWithJar = new Path(dynamicJarsDir +
    +                          // Copy the jar (can be local or on HDFS) to the hbase.dynamic.jars.dir
    +                          // Note that this does not support HDFS URIs without scheme
and authority.
    +                          Path jarPath = new Path(jarPathName);
    +                          FileUtil.copy(jarPath.getFileSystem(conf), jarPath, fs, dynamicJarsDirPathWithJar,
    --- End diff --
    If the client does not have perms to write to hbase.dynamic.jars.dir (and I expect normally
clients will not have write perms to this directory, only admin clients will have it), the
copy will fail and throw an IOException. The result may not be user friendly, though. Did
you try this? What happens? 

> Support restriction of remote UDF load sources 
> -----------------------------------------------
>                 Key: PHOENIX-4231
>                 URL:
>             Project: Phoenix
>          Issue Type: Improvement
>            Reporter: Andrew Purtell
>            Assignee: Chinmay Kulkarni
>            Priority: Major
> When allowUserDefinedFunctions is true, users can load UDFs remotely via a jar file from
any HDFS filesystem reachable on the network. The setting hbase.dynamic.jars.dir can be used
to restrict locations for jar loading but is only applied to jars loaded from the local filesystem.
 We should implement support for similar restriction via configuration for jars loaded via
hdfs:// URIs.

This message was sent by Atlassian JIRA

View raw message