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)