Hi Ivy,

Looks like a glitch in the shiny new dynamic UDF feature. Does the directory 
Users/ivy.chan exist on the C: drive? You can work around this in a couple of 
ways.

First, disable the dynamic UDF feature (which is not really needed for an 
embedded Drillbit). Unfortunately, this works only once the Drillbit is up 
because it is a runtime SQL option:

ALTER SESSION SET `exec.udf.enable_dynamic_support` = false

The other is to change the location of the directory that the feature is trying 
to create. Add the following to your $DRILL_HOME/conf/drill-override.conf file:

drill.udf.directory.root: “C:\Temp”

Or any other directory that does, in fact, exist on your system.

Let us know if this works. If not, perhaps Arina (who developed the feature) 
can help provide a better solution.

Thanks,

- Paul


> On Dec 3, 2016, at 6:24 PM, <[email protected]> <[email protected]> 
> wrote:
> 
> Hi
> 
> I'm trying out 1.9.0 on our Windows server. When launching the embedded mode, 
> I got the following errors:
> 
> 
> E:\software\apache-drill-1.9.0\bin>sqlline.bat -u "jdbc:drill:zk=local"
> DRILL_ARGS - " -u jdbc:drill:zk=local"
> HADOOP_HOME not detected...
> HBASE_HOME not detected...
> Calculating Drill classpath...
> Error: Failure in starting embedded Drillbit: 
> org.apache.drill.common.exceptions
> .DrillRuntimeException: Error during udf area creation 
> [/C:/Users/ivy.chan/drill
> /udf/registry] on file system [file:///] (state=,code=0)
> java.sql.SQLException: Failure in starting embedded Drillbit: 
> org.apache.drill.c
> ommon.exceptions.DrillRuntimeException: Error during udf area creation 
> [/C:/User
> s/ivy.chan/drill/udf/registry] on file system [file:///]
>        at 
> org.apache.drill.jdbc.impl.DrillConnectionImpl.<init>(DrillConnection
> Impl.java:128)
>        at 
> org.apache.drill.jdbc.impl.DrillJdbc41Factory.newDrillConnection(Dril
> lJdbc41Factory.java:70)
>        at 
> org.apache.drill.jdbc.impl.DrillFactory.newConnection(DrillFactory.ja
> va:69)
>        at 
> org.apache.calcite.avatica.UnregisteredDriver.connect(UnregisteredDri
> ver.java:143)
>        at org.apache.drill.jdbc.Driver.connect(Driver.java:72)
>        at sqlline.DatabaseConnection.connect(DatabaseConnection.java:167)
>        at 
> sqlline.DatabaseConnection.getConnection(DatabaseConnection.java:213)
> 
>        at sqlline.Commands.connect(Commands.java:1083)
>        at sqlline.Commands.connect(Commands.java:1015)
>        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>        at 
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
> java:62)
>        at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
> sorImpl.java:43)
>        at java.lang.reflect.Method.invoke(Method.java:497)
>        at 
> sqlline.ReflectiveCommandHandler.execute(ReflectiveCommandHandler.jav
> a:36)
>        at sqlline.SqlLine.dispatch(SqlLine.java:742)
>        at sqlline.SqlLine.initArgs(SqlLine.java:528)
>        at sqlline.SqlLine.begin(SqlLine.java:596)
>        at sqlline.SqlLine.start(SqlLine.java:375)
>        at sqlline.SqlLine.main(SqlLine.java:268)
> Caused by: org.apache.drill.common.exceptions.DrillRuntimeException: Error 
> durin
> g udf area creation [/C:/Users/ivy.chan/drill/udf/registry] on file system 
> [file
> :///]
>        at 
> org.apache.drill.common.exceptions.DrillRuntimeException.format(Drill
> RuntimeException.java:49)
>        at 
> org.apache.drill.exec.expr.fn.registry.RemoteFunctionRegistry.createA
> rea(RemoteFunctionRegistry.java:246)
>        at 
> org.apache.drill.exec.expr.fn.registry.RemoteFunctionRegistry.prepare
> Areas(RemoteFunctionRegistry.java:208)
>        at 
> org.apache.drill.exec.expr.fn.registry.RemoteFunctionRegistry.init(Re
> moteFunctionRegistry.java:106)
>        at org.apache.drill.exec.server.Drillbit.run(Drillbit.java:126)
>        at 
> org.apache.drill.jdbc.impl.DrillConnectionImpl.<init>(DrillConnection
> Impl.java:119)
>        ... 18 more
> Caused by: java.lang.IllegalStateException: Area 
> [/C:/Users/ivy.chan/drill/udf/r
> egistry] must be writable and executable for application user
>        at 
> com.google.common.base.Preconditions.checkState(Preconditions.java:19
> 7)
>        at 
> org.apache.drill.exec.expr.fn.registry.RemoteFunctionRegistry.createA
> rea(RemoteFunctionRegistry.java:238)
>        ... 22 more
> apache drill 1.9.0
> "got drill?"
> 
> It is working on 1.8.0.
> 
> I also got compile error on sqlline.log:
> 
> 2016-12-03 21:05:59,026 [main] WARN  o.a.drill.exec.util.GuavaPatcher - 
> Unable to patch Guava classes.
> javassist.CannotCompileException: by java.lang.LinkageError: loader (instance 
> of  sun/misc/Launcher$AppClassLoader): attempted  duplicate class definition 
> for name: "com/google/common/base/Stopwatch"
>                at javassist.ClassPool.toClass(ClassPool.java:1085) 
> ~[javassist-3.12.1.GA.jar:na]
>                at javassist.ClassPool.toClass(ClassPool.java:1028) 
> ~[javassist-3.12.1.GA.jar:na]
>                at javassist.ClassPool.toClass(ClassPool.java:986) 
> ~[javassist-3.12.1.GA.jar:na]
>                at javassist.CtClass.toClass(CtClass.java:1079) 
> ~[javassist-3.12.1.GA.jar:na]
>                at 
> org.apache.drill.exec.util.GuavaPatcher.patchStopwatch(GuavaPatcher.java:66) 
> ~[drill-java-exec-1.9.0.jar:1.9.0]
>                at 
> org.apache.drill.exec.util.GuavaPatcher.patch(GuavaPatcher.java:36) 
> ~[drill-java-exec-1.9.0.jar:1.9.0]
>                at 
> org.apache.drill.exec.server.Drillbit.<clinit>(Drillbit.java:63) 
> [drill-java-exec-1.9.0.jar:1.9.0]
>                at 
> org.apache.drill.jdbc.impl.DrillConnectionImpl.<init>(DrillConnectionImpl.java:118)
>  [drill-jdbc-1.9.0.jar:1.9.0]
>                at 
> org.apache.drill.jdbc.impl.DrillJdbc41Factory.newDrillConnection(DrillJdbc41Factory.java:70)
>  [drill-jdbc-1.9.0.jar:1.9.0]
>                at 
> org.apache.drill.jdbc.impl.DrillFactory.newConnection(DrillFactory.java:69) 
> [drill-jdbc-1.9.0.jar:1.9.0]
>                at 
> org.apache.calcite.avatica.UnregisteredDriver.connect(UnregisteredDriver.java:143)
>  [calcite-avatica-1.4.0-drill-r19.jar:1.4.0-drill-r19]
>                at org.apache.drill.jdbc.Driver.connect(Driver.java:72) 
> [drill-jdbc-1.9.0.jar:1.9.0]
>                at 
> sqlline.DatabaseConnection.connect(DatabaseConnection.java:167) 
> [sqlline-1.1.9-drill-r7.jar:na]
>                at 
> sqlline.DatabaseConnection.getConnection(DatabaseConnection.java:213) 
> [sqlline-1.1.9-drill-r7.jar:na]
>                at sqlline.Commands.connect(Commands.java:1083) 
> [sqlline-1.1.9-drill-r7.jar:na]
>                at sqlline.Commands.connect(Commands.java:1015) 
> [sqlline-1.1.9-drill-r7.jar:na]
>                at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
> ~[na:1.8.0_73]
>                at 
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
> ~[na:1.8.0_73]
>                at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>  ~[na:1.8.0_73]
>                at java.lang.reflect.Method.invoke(Method.java:497) 
> ~[na:1.8.0_73]
>                at 
> sqlline.ReflectiveCommandHandler.execute(ReflectiveCommandHandler.java:36) 
> [sqlline-1.1.9-drill-r7.jar:na]
>                at sqlline.SqlLine.dispatch(SqlLine.java:742) 
> [sqlline-1.1.9-drill-r7.jar:na]
>                at sqlline.SqlLine.initArgs(SqlLine.java:528) 
> [sqlline-1.1.9-drill-r7.jar:na]
>                at sqlline.SqlLine.begin(SqlLine.java:596) 
> [sqlline-1.1.9-drill-r7.jar:na]
>                at sqlline.SqlLine.start(SqlLine.java:375) 
> [sqlline-1.1.9-drill-r7.jar:na]
>                at sqlline.SqlLine.main(SqlLine.java:268) 
> [sqlline-1.1.9-drill-r7.jar:na]
> Caused by: java.lang.LinkageError: loader (instance of  
> sun/misc/Launcher$AppClassLoader): attempted  duplicate class definition for 
> name: "com/google/common/base/Stopwatch"
>                at java.lang.ClassLoader.defineClass1(Native Method) 
> ~[na:1.8.0_73]
>                at java.lang.ClassLoader.defineClass(ClassLoader.java:760) 
> ~[na:1.8.0_73]
>                at java.lang.ClassLoader.defineClass(ClassLoader.java:642) 
> ~[na:1.8.0_73]
>                at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
> ~[na:1.8.0_73]
>                at 
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
> ~[na:1.8.0_73]
>                at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>  ~[na:1.8.0_73]
>                at java.lang.reflect.Method.invoke(Method.java:497) 
> ~[na:1.8.0_73]
>                at javassist.ClassPool.toClass2(ClassPool.java:1098) 
> ~[javassist-3.12.1.GA.jar:na]
>                at javassist.ClassPool.toClass(ClassPool.java:1079) 
> ~[javassist-3.12.1.GA.jar:na]
>                ... 25 common frames omitted
> 
> Thanks,
> Ivy Chan
> 
> 
> 
> 
> 
> ________________________________
> ********************** IMPORTANT--PLEASE READ ************************ This 
> electronic message, including its attachments, is CONFIDENTIAL and may 
> contain PROPRIETARY or LEGALLY PRIVILEGED or PROTECTED information and is 
> intended for the authorized recipient of the sender. If you are not the 
> intended recipient, you are hereby notified that any use, disclosure, 
> copying, or distribution of this message or any of the information included 
> in it is unauthorized and strictly prohibited. If you have received this 
> message in error, please immediately notify the sender by reply e-mail and 
> permanently delete this message and its attachments, along with any copies 
> thereof, from all locations received (e.g., computer, mobile device, etc.). 
> Thank you. 
> ************************************************************************

Reply via email to