Richard Xin created ZEPPELIN-2828: ------------------------------------- Summary: unhandled NullPointerException in PostgreSqlInterpreter when unable to connect Key: ZEPPELIN-2828 URL: https://issues.apache.org/jira/browse/ZEPPELIN-2828 Project: Zeppelin Issue Type: Bug Components: Interpreters Affects Versions: 0.7.2 Environment: AWS EMR
Reporter: Richard Xin Steps to reproduce: 1. add postges interpreter via Interpreter UI 2. use "jdbc:postgresql://[db_host]:5432/" as postgresql.url where the default value was "jdbc:postgresql://localhost:5432/" 3. create a new notebook: %postgresql (or %psql) select * from test.batch_report; got NPE, and here is what in the log: INFO [2017-08-03 20:22:53,610] ({pool-2-thread-2} SchedulerFactory.java[jobStarted]:131) - Job paragraph_1501783535283_1713771734 started by scheduler org.apache.zeppelin.interpreter.remote.RemoteInterpretershared_session392982422 INFO [2017-08-03 20:22:53,611] ({pool-2-thread-2} Paragraph.java[jobRun]:362) - run paragraph 20170803-180535_552293631 using psql org.apache.zeppelin.interpreter.LazyOpenInterpreter@144aa9ed INFO [2017-08-03 20:22:53,620] ({pool-2-thread-2} RemoteInterpreterManagedProcess.java[start]:126) - Run interpreter process [/usr/lib/zeppelin/bin/interpreter.sh, -d, /usr/lib/zeppelin/interpreter/postgresql, -p, 42610, -l, /usr/lib/zeppelin/local-repo/2CPQEJPGC] INFO [2017-08-03 20:22:54,190] ({pool-2-thread-2} RemoteInterpreter.java[init]:221) - Create remote interpreter org.apache.zeppelin.postgresql.PostgreSqlInterpreter INFO [2017-08-03 20:22:54,370] ({pool-2-thread-2} RemoteInterpreter.java[pushAngularObjectRegistryToRemote]:551) - Push local angular object registry from ZeppelinServer to remote interpreter group 2CPQEJPGC:shared_process WARN [2017-08-03 20:22:54,606] ({pool-2-thread-2} NotebookServer.java[afterStatusChange]:2058) - Job 20170803-180535_552293631 is finished, status: ERROR, exception: null, result: %text java.lang.NullPointerException at org.apache.zeppelin.postgresql.PostgreSqlInterpreter.executeSql(PostgreSqlInterpreter.java:202) at org.apache.zeppelin.postgresql.PostgreSqlInterpreter.interpret(PostgreSqlInterpreter.java:289) at org.apache.zeppelin.interpreter.LazyOpenInterpreter.interpret(LazyOpenInterpreter.java:97) at org.apache.zeppelin.interpreter.remote.RemoteInterpreterServer$InterpretJob.jobRun(RemoteInterpreterServer.java:498) at org.apache.zeppelin.scheduler.Job.run(Job.java:175) at org.apache.zeppelin.scheduler.FIFOScheduler$1.run(FIFOScheduler.java:139) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180) at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) at java.lang.Thread.run(Thread.java:748) INFO [2017-08-03 20:22:54,673] ({pool-2-thread-2} SchedulerFactory.java[jobFinished]:137) - Job paragraph_1501783535283_1713771734 finished by scheduler org.apache.zeppelin.interpreter.remote.RemoteInterpretershared_session392982422 I later worked around NPE by adding database name as part of the postgresql.url. I believe this NPE exception is better to be handled and emit more user-friendly error message. -- This message was sent by Atlassian JIRA (v6.4.14#64029)