Paul Rogers created DRILL-5274:
----------------------------------
Summary: Exception thrown in Drillbit shutdown in UDF cleanup code
Key: DRILL-5274
URL: https://issues.apache.org/jira/browse/DRILL-5274
Project: Apache Drill
Issue Type: Bug
Affects Versions: 1.10
Reporter: Paul Rogers
Assignee: Arina Ielchiieva
I ran a very simple query: a single-line text file in an embedded Drillbit. On
Drillbit shutdown, the following occurred:
{code}
25328 DEBUG [main] [org.apache.drill.exec.server.Drillbit] - Shutdown begun.
26344 INFO [pool-1-thread-2] [org.apache.drill.exec.rpc.data.DataServer] -
closed eventLoopGroup io.netty.channel.nio.NioEventLoopGroup@7d1c0d85 in 1007 ms
26345 INFO [pool-1-thread-1] [org.apache.drill.exec.rpc.user.UserServer] -
closed eventLoopGroup io.netty.channel.nio.NioEventLoopGroup@7cdb3b56 in 1008 ms
26345 INFO [pool-1-thread-1] [org.apache.drill.exec.service.ServiceEngine] -
closed userServer in 1009 ms
26345 INFO [pool-1-thread-2] [org.apache.drill.exec.service.ServiceEngine] -
closed dataPool in 1009 ms
26356 WARN [main] [org.apache.drill.exec.server.Drillbit] - Failure on close()
java.lang.IllegalArgumentException: /tmp/drill/udf/udf/local does not exist
at org.apache.commons.io.FileUtils.cleanDirectory(FileUtils.java:1637)
~[commons-io-2.4.jar:2.4]
at
org.apache.drill.exec.expr.fn.FunctionImplementationRegistry.close(FunctionImplementationRegistry.java:469)
~[classes/:na]
at
org.apache.drill.exec.server.DrillbitContext.close(DrillbitContext.java:209)
~[classes/:na]
at org.apache.drill.exec.work.WorkManager.close(WorkManager.java:152)
~[classes/:na]
at org.apache.drill.common.AutoCloseables.close(AutoCloseables.java:76)
~[classes/:na]
at org.apache.drill.common.AutoCloseables.close(AutoCloseables.java:64)
~[classes/:na]
at org.apache.drill.exec.server.Drillbit.close(Drillbit.java:171)
~[classes/:na]
...
{code}
The following patch makes the problem go away, but I'm not sure if the above is
an indication of deeper problems.
{code}
public class FunctionImplementationRegistry implements FunctionLookupContext,
AutoCloseable {
...
public void close() {
if (deleteTmpDir) {
...
} else {
try {
File dir = new File(localUdfDir.toUri().getPath());
if (dir.exists()) {
FileUtils.cleanDirectory(dir);
}
...
}
}
{code}
--
This message was sent by Atlassian JIRA
(v6.3.15#6346)