Hey Guys,
While running test cases of Drill. I get this issue.
java.lang.NullPointerException
at
com.google.common.base.Preconditions.checkNotNull(Preconditions.java:191)
at
org.apache.drill.exec.cache.VectorAccessibleSerializable.writeToStream(VectorAccessibleSerializable.java:144)
at
org.apache.drill.exec.cache.VectorAccessibleSerializable.writeToStreamAndRetain(VectorAccessibleSerializable.java:134)
at
org.apache.drill.exec.physical.impl.trace.TraceRecordBatch.doWork(TraceRecordBatch.java:116)
at
org.apache.drill.exec.record.AbstractSingleRecordBatch.next(AbstractSingleRecordBatch.java:63)
at
org.apache.drill.exec.physical.impl.SimpleRootExec.next(SimpleRootExec.java:70)
at
org.apache.drill.exec.client.DumpCatTest.testDumpCat(DumpCatTest.java:82)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.lang.reflect.Method.invoke(Method.java:606)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.lang.reflect.Method.invoke(Method.java:606)
at
org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50)
at
org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
at
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)
at
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
at
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)
at
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)
I’m running these test on Mackbook and my finding tell me that Drill tries to
make a dump at this location
/var/log/drill//00000000-0000-0000-0000-000000000000_0_0_mock-scan. It gets
this file name from getFileName() method inside TraceRecordBatch.java. The
source of prefix of this path comes from
incubator-drill/exec/java-exec/target/classes/drill-module.conf file.
The issue here is there is no path in /var/log/drill as unlike linux there is
no folder that starts from /var.
Since this is a conf part a user should have addressed this while configuring
drill in their infrastructure. However, if he forgets to do so.
I think we should have a test case for this which asserts if “trace" location
is valid or not. Any suggestions ?
Regards,
Rohit.