Usman Shahid created DRILL-5280: ----------------------------------- Summary: Error during udf area creation due to NullPointerException during drillbit startup Key: DRILL-5280 URL: https://issues.apache.org/jira/browse/DRILL-5280 Project: Apache Drill Issue Type: Bug Environment: Windows 7 64-bit Java(TM) SE Runtime Environment (build 1.8.0_111-b14) Reporter: Usman Shahid
I tried to start drill in distributed mode but ran into this: `Exception in thread "main" org.apache.drill.exec.exception.DrillbitStartupException: Failure during initial startup of Drillbit. at org.apache.drill.exec.server.Drillbit.start(Drillbit.java:296) at org.apache.drill.exec.server.Drillbit.start(Drillbit.java:272) at org.apache.drill.exec.server.Drillbit.main(Drillbit.java:268) Caused by: org.apache.drill.common.exceptions.DrillRuntimeException: Error during udf area creation [/C:/Users/Usman.Shahid/drill/udf/registry] on file system [file:///] at org.apache.drill.common.exceptions.DrillRuntimeException.format(DrillRuntimeException.java:49) at org.apache.drill.exec.expr.fn.registry.RemoteFunctionRegistry.createArea(RemoteFunctionRegistry.java:251) at org.apache.drill.exec.expr.fn.registry.RemoteFunctionRegistry.prepareAreas(RemoteFunctionRegistry.java:208) at org.apache.drill.exec.expr.fn.registry.RemoteFunctionRegistry.init(RemoteFunctionRegistry.java:105) at org.apache.drill.exec.server.Drillbit.run(Drillbit.java:126) at org.apache.drill.exec.server.Drillbit.start(Drillbit.java:292) ... 2 more Caused by: java.lang.NullPointerException at java.lang.ProcessBuilder.start(ProcessBuilder.java:1012) at org.apache.hadoop.util.Shell.runCommand(Shell.java:483) at org.apache.hadoop.util.Shell.run(Shell.java:456) at org.apache.hadoop.util.Shell$ShellCommandExecutor.execute(Shell.java:722) at org.apache.hadoop.util.Shell.execCommand(Shell.java:815) at org.apache.hadoop.util.Shell.execCommand(Shell.java:798) at org.apache.hadoop.fs.FileUtil.execCommand(FileUtil.java:1097) at org.apache.hadoop.fs.RawLocalFileSystem$DeprecatedRawLocalFileStatus.loadPermissionInfo(RawLocalFileSystem.java:654) at org.apache.hadoop.fs.RawLocalFileSystem$DeprecatedRawLocalFileStatus.getPermission(RawLocalFileSystem.java:629) at org.apache.drill.exec.expr.fn.registry.RemoteFunctionRegistry.createArea(RemoteFunctionRegistry.java:232) ... 6 more ` The complete stack trace for the `NullPointerException` is: ` Thread [main] (Suspended (exception NullPointerException)) owns: Object (id=57) ProcessBuilder.start() line: 1012 Shell$ShellCommandExecutor(Shell).runCommand() line: 483 Shell$ShellCommandExecutor(Shell).run() line: 456 Shell$ShellCommandExecutor.execute() line: 722 Shell.execCommand(Map<String,String>, String[], long) line: 815 Shell.execCommand(String...) line: 798 FileUtil.execCommand(File, String...) line: 1097 RawLocalFileSystem$DeprecatedRawLocalFileStatus.loadPermissionInfo() line: 654 RawLocalFileSystem$DeprecatedRawLocalFileStatus.getPermission() line: 629 RemoteFunctionRegistry.createArea(FileSystem, String, String) line: 232 RemoteFunctionRegistry.prepareAreas(DrillConfig) line: 208 RemoteFunctionRegistry.init(DrillConfig, PersistentStoreProvider, ClusterCoordinator) line: 105 Drillbit.run() line: 126 Drillbit.start(DrillConfig, RemoteServiceSet) line: 292 Drillbit.start(StartupOptions) line: 272 Drillbit.main(String[]) line: 268 ` To further pinpoint it, the call to `Shell.getGetPermissionCommand()` at `RawLocalFileSystem$DeprecatedRawLocalFileStatus.loadPermissionInfo() ` returns a `new String[] { WINUTILS, "ls", "-F" }`. It's this `WINUTILS` that's null because my system doesn't have hadoop installed (nor do I intend to use it). The shortest workaround to this is to have a `HADOOP_HOME` environment variable pointing towards the `winutils.exe` bin directory. -- This message was sent by Atlassian JIRA (v6.3.15#6346)