Xi Shen created ZEPPELIN-1548:
---------------------------------

             Summary: ConcurrentModificationException when trying to create 
JDBC interpreter
                 Key: ZEPPELIN-1548
                 URL: https://issues.apache.org/jira/browse/ZEPPELIN-1548
             Project: Zeppelin
          Issue Type: Bug
          Components: Interpreters
         Environment: - docker
- jdk-8
- hadoop v2.7.3 *binary package from web*
- zeppelin v0.6.1 *binary package from web*
- hive v2.1.0 *binary package from web*
            Reporter: Xi Shen


Environment set up:

- one docker container running Hadoop in pseudo-cluster mode
- one docker container running Hive2
- one docker container running Zeppelin

After Zeppelin startup, I updated the jdbc interpreter to use 
{{hive.url=jdbc:hive2://hive:1000}}. And I added the following dependencies:

- org.apache.hive:hive-jdbc:2.1.0
- org.apache.hadoop:hadoop-common:2.7.3

After I saved the configuration, I created a new notebook and executed:

{code}
%jdbc(hive)

show tables
{code}

But I got:

{code}
java.net.ConnectException: Connection refused
  at java.net.PlainSocketImpl.socketConnect(Native Method)
  at 
java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
  at 
java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
  at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
  at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
  at java.net.Socket.connect(Socket.java:589)
  at org.apache.thrift.transport.TSocket.open(TSocket.java:182)
  at 
org.apache.zeppelin.interpreter.remote.ClientFactory.create(ClientFactory.java:51)
  at 
org.apache.zeppelin.interpreter.remote.ClientFactory.create(ClientFactory.java:37)
  at 
org.apache.commons.pool2.BasePooledObjectFactory.makeObject(BasePooledObjectFactory.java:60)
  at 
org.apache.commons.pool2.impl.GenericObjectPool.create(GenericObjectPool.java:861)
  at 
org.apache.commons.pool2.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:435)
  at 
org.apache.commons.pool2.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:363)
  at 
org.apache.zeppelin.interpreter.remote.RemoteInterpreterProcess.getClient(RemoteInterpreterProcess.java:189)
  at 
org.apache.zeppelin.interpreter.remote.RemoteInterpreter.init(RemoteInterpreter.java:163)
  at 
org.apache.zeppelin.interpreter.remote.RemoteInterpreter.getFormType(RemoteInterpreter.java:328)
  at 
org.apache.zeppelin.interpreter.LazyOpenInterpreter.getFormType(LazyOpenInterpreter.java:105)
  at org.apache.zeppelin.notebook.Paragraph.jobRun(Paragraph.java:260)
  at org.apache.zeppelin.scheduler.Job.run(Job.java:176)
  at 
org.apache.zeppelin.scheduler.RemoteScheduler$JobRunner.run(RemoteScheduler.java:328)
  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:1142)
  at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
  at java.lang.Thread.run(Thread.java:745)
{code}

In the {{./logs}} directory, I did not find a *zeppelin-\*-jdbc\*.log* file, 
which I think a clear indication that the interpreter never gets created.

Here's some snippet of the *zeppelin\*.log* file:

{code}
INFO [2016-10-14 02:35:28,480] ({qtp88558700-16} 
DependencyResolver.java[load]:100) - copy 
/opt/zeppelin/local-repo/io/netty/netty/3.6.2.Final/netty-3.6.2.Final.jar to 
/opt/zeppelin/local-repo/2BY2TS152
 INFO [2016-10-14 02:35:28,481] ({qtp88558700-16} 
DependencyResolver.java[load]:100) - copy 
/opt/zeppelin/local-repo/org/apache/commons/commons-compress/1.4.1/commons-compress-1.4.1.jar
 to /opt/zeppelin/local-repo/2BY2TS152
 INFO [2016-10-14 02:35:28,481] ({qtp88558700-16} 
DependencyResolver.java[load]:100) - copy 
/opt/zeppelin/local-repo/org/tukaani/xz/1.0/xz-1.0.jar to 
/opt/zeppelin/local-repo/2BY2TS152
 INFO [2016-10-14 02:35:28,567] ({qtp88558700-459} 
InterpreterFactory.java[createInterpretersForNote]:576) - Create interpreter 
instance jdbc for note 2BYEFJRDP
 INFO [2016-10-14 02:35:28,567] ({qtp88558700-459} 
InterpreterFactory.java[createInterpretersForNote]:606) - Interpreter 
org.apache.zeppelin.jdbc.JDBCInterpreter 1044622404 created
 INFO [2016-10-14 02:35:28,583] ({pool-1-thread-7} 
SchedulerFactory.java[jobStarted]:131) - Job paragraph_1476353914739_-698717456 
started by scheduler 
org.apache.zeppelin.interpreter.remote.RemoteInterpretershared_session1000964802
 INFO [2016-10-14 02:35:28,584] ({pool-1-thread-7} Paragraph.java[jobRun]:252) 
- run paragraph 20161013-101834_778249242 using jdbc 
org.apache.zeppelin.interpreter.LazyOpenInterpreter@3e43ac44
 INFO [2016-10-14 02:35:28,591] ({pool-1-thread-7} 
RemoteInterpreterProcess.java[reference]:148) - Run interpreter process 
[/opt/zeppelin/bin/interpreter.sh, -d, /opt/zeppelin/interpreter/jdbc, -p, 
33939, -l, /opt/zeppelin/local-repo/2BY2TS152]
 INFO [2016-10-14 02:35:28,726] ({qtp88558700-14} 
NotebookServer.java[onClose]:227) - Closed connection to 192.168.99.1 : 61687. 
(1006) EOF: Broken pipe
ERROR [2016-10-14 02:35:28,757] ({qtp88558700-14} 
NotebookServer.java[onMessage]:221) - Can't handle message
java.util.ConcurrentModificationException
        at 
java.util.LinkedList$ListItr.checkForComodification(LinkedList.java:966)
        at java.util.LinkedList$ListItr.next(LinkedList.java:888)
        at 
org.apache.zeppelin.socket.NotebookServer.broadcast(NotebookServer.java:316)
        at 
org.apache.zeppelin.socket.NotebookServer.updateParagraph(NotebookServer.java:602)
        at 
org.apache.zeppelin.socket.NotebookServer.onMessage(NotebookServer.java:174)
        at 
org.apache.zeppelin.socket.NotebookSocket.onWebSocketText(NotebookSocket.java:56)
{code}

I think this one corresponds to the one I saw from the web UI:

{code}
Caused by: java.net.ConnectException: Connection refused
        at java.net.PlainSocketImpl.socketConnect(Native Method)
        at 
java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
        at 
java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
        at 
java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
        at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
        at java.net.Socket.connect(Socket.java:589)
        at org.apache.thrift.transport.TSocket.open(TSocket.java:182)
        ... 9 more
{code}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to